如何添加键列出并转换为JSON在Python

问题描述 投票:0回答:1

我曾尝试this转换列表列表JSON。但不能转换为正确的JSON格式。

我的数据是

    data= [['India',
          'India runs mentorship driven incubation.',
          '/7e9e130075d3bfcd9e0.png'],
         ['Capital',
          'develops high growth and market-defining India-centric Software and Services Big Data and Analytics and Consumer Mobile or Internet markets.',
          '/data/images/512bc5a2937.png']]

    titles = ['Country','description','logo']

    values = [e for g in grouper(3, data) for e in g]
keys = (titles[i%3] for i in xrange(len(values)))

objs = [dict(g) for g in grouper(3, list(izip(keys, values)))]
print(objs)

结果:

[{'Country': ['India', 'India runs mentorship driven incubation.', '/7e9e130075d3bfcd9e0.png'], 'description': ['Capital', 'develops high growth and market-defining India-centric Software and Services Big Data and Analytics and Consumer Mobile or Internet markets.', '/data/images/512bc5a2937.png']}]

但是,预期的结果应该是这种形式。

[{'Country': 'India', 'description': 'India runs mentorship driven incubation.', 'logo': '/7e9e130075d3bfcd9e0.png'}]  

应该怎么理?

python-3.x
1个回答
1
投票

您可以使用一个行列表理解。首先,遍历数据,一个用于每个数据片(entry),具有zip titles它创建的元组可被转换成一个辞典的迭代:

data= [['India',
      'India runs mentorship driven incubation.',
      '/7e9e130075d3bfcd9e0.png'],
     ['Capital',
      'develops high growth and market-defining India-centric Software and Services Big Data and Analytics and Consumer Mobile or Internet markets.',
      '/data/images/512bc5a2937.png']]

titles = ['Country','description','logo']

result = [dict(zip(titles, entry)) for entry in data]
print(result)

输出:

[{'Country': 'India',
  'description': 'India runs mentorship driven incubation.',
  'logo': '/7e9e130075d3bfcd9e0.png'},
 {'Country': 'Capital',
  'description': 'develops high growth and market-defining India-centric Software and Services Big Data and Analytics and Consumer Mobile or Internet markets.',
  'logo': '/data/images/512bc5a2937.png'}]
© www.soinside.com 2019 - 2024. All rights reserved.