将两个列表转换为Python中的JSON格式

15 投票
5 回答
13440 浏览
提问于 2025-04-18 17:34

我有两个列表

a=["USA","France","Italy"]
b=["10","5","6"]

我想要的最终结果是这样的json格式。

[{"country":"USA","wins":"10"},
{"country":"France","wins":"5"},
{"country":"Italy","wins":"6"},
]

我用了zip(a,b)来把两个列表合并,但我不知道怎么给它命名。

5 个回答

0

如果你想把两个列表合并成一个JSON格式的数据,可以这样做:

def make_json_from_two_list():
    keys = ["USA","France","Italy"]
    value = ["10","5","6"]
    jsons = {}
    x = 0
    for item in keys:
        jsons[item[0]] = value[x]
        x += 1
    return jsons

print(ake_json_from_two_list())

结果是这样的>>>> {"USA":"10","France":"5","Italy":"6"}

0

除了'falsetru'的回答,如果你需要一个真正的json对象(而不仅仅是一个看起来像json的字符串),你可以使用 json.loads() 这个函数,把 json.dumps() 输出的字符串作为参数传进去。

1

你可以把 mapzip 这两个东西结合起来使用。

jsonized = map(lambda item: {'country':item[0], 'wins':item[1]}, zip(a,b))
4

你首先需要把它设置成一个列表,然后再往里面添加项目。

import json

jsonList = []
a=["USA","France","Italy"]
b=["10","5","6"]

for i in range(0,len(a)):
    jsonList.append({"country" : a[i], "wins" : b[i]})


print(json.dumps(jsonList, indent = 1))
19

使用列表推导式

>>> [{'country': country, 'wins': wins} for country, wins in zip(a, b)]
[{'country': 'USA', 'wins': '10'},
 {'country': 'France', 'wins': '5'},
 {'country': 'Italy', 'wins': '6'}]

使用json.dumps来获取JSON格式的数据:

>>> json.dumps(
...     [{'country': country, 'wins': wins} for country, wins in zip(a, b)]
... )
'[{"country": "USA", "wins": "10"}, {"country": "France", "wins": "5"}, {"country": "Italy", "wins": "6"}]'

撰写回答