嵌套循环到字典,为了变成json?



我有一个嵌套循环像这样:

prices = [[1,2,3,4],[3,4,1,2]]

我想把它变成一个字典结构,以便使用json形成json。转储,例如:

prices = [{apple:1,banana:2,pear:3,orange:4},{apple:3,banana:4,pear:1,orange:2}]
prices_json = json.dumps(prices)

然而,由于嵌套循环结构,我遇到了麻烦。我的一个想法是使用map()在循环中迭代,然后使用zip在每个内部循环中形成一个字典

def prices_to_dict(prices):
price_headers=['apple','banana','pear','orange']
return dict(zip(price_headers,prices))
prices_dict_list=map(prices_to_dict,prices)
prices_json = json.dumps(prices_dict_list)

,但这似乎不像我想的那样工作,并且没有返回任何

有更好的方法来处理这个问题吗?或者更好的方式来命名这个循环中的列,然后弹出到json文件?

使用字典推导式和列表推导式:

prices = [[1, 2, 3, 4], [3, 4, 1, 2]]
price_headers = ['apple', 'banana', 'pear', 'orange']
out = [{key: val for key, val in zip(price_headers, price)} for price in prices]
print(out)
# Output
[{'apple': 1, 'banana': 2, 'pear': 3, 'orange': 4},
{'apple': 3, 'banana': 4, 'pear': 1, 'orange': 2}]
import json
jout = json.dumps(out, indent=4)
print(jout)
# Output:
[
{
"apple": 1,
"banana": 2,
"pear": 3,
"orange": 4
},
{
"apple": 3,
"banana": 4,
"pear": 1,
"orange": 2
}
]

遍历prices中的每个列表,然后用fruits压缩并将其添加到temp字典中,然后添加到result列表中。

prices = [[1,2,3,4],[3,4,1,2]]
fruits = ['apple','banana','pear','orange']
res = []
for price in prices:
temp = {}
for k,v in zip(fruits, price):
temp.update({k:v})
res.append(temp)
prices_json = json.dumps(res)
print(prices_json)

给输出

[{"apple": 1, "banana": 2, "pear": 3, "orange": 4}, {"apple": 3, "banana": 4, "pear": 1, "orange": 2}]

相关内容

  • 没有找到相关文章

最新更新