我曾尝试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'}]
应该怎么理?
您可以使用一个行列表理解。首先,遍历数据,一个用于每个数据片(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'}]