Mam dwie listy

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

Chcę, aby wynik końcowy był w takim jak właśnie.

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

Użyłem ZIP (A, B), aby dołączyć do dwóch, ale nie mogłem tego wymienić

11
Dexter Stack 17 sierpień 2014, 15:07

4 odpowiedzi

Najlepsza odpowiedź

Korzystanie z Lista Rozumienie:

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

Użyj json.dumps, aby uzyskać 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"}]'
17
falsetru 17 sierpień 2014, 11:09

Najpierw musisz go ustawić jako listę, a następnie dodaj do niego

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))
1
ruben1691 17 sierpień 2014, 11:12

Możesz połączyć map za pomocą zip.

jsonized = map(lambda item: {'country':item[0], 'wins':item[1]}, zip(a,b))
1
falsetru 17 sierpień 2014, 11:20

Oprócz odpowiedzi o "falsetru", jeśli potrzebujesz rzeczywistego obiektu JSON (i nie tylko ciąg ze strukturą JSON), możesz użyć json.loads() i użyj jako parametr ciąg, który json.dumps() wyjścia .

0
F Blanchet 24 czerwiec 2019, 18:33