J'ai une liste dans Python appelée itemlist qui contient des données telles que les données suivantes: Je souhaite stocker ces informations dans la liste dans un dictionnaire dans le format suivant: p> {
"Characteristic": "Soil",
"Info": "ToRead"
},
{
"Characteristic": "Temperature",
"Info": "ToRead"
},
...
6 Réponses :
Utiliser Sortie: fort> p> dict code> à l'intérieur d'une compréhension de la liste
Les littéraux dictés sont également valables, pas besoin d'utiliser le constructeur
Vous pouvez utiliser une liste de compréhension avec des littéraux dictionnaires imbriqués pour créer les données ... ... puis utilisez json.dump code> ou décharge code> pour le jeter dans un fichier ou jolie-impression. P> >>> import json
>>> print(json.dumps(d, indent=2))
[
{
"Characteristic": "Soil",
"Info": "ToRead"
},
{
"Characteristic": "Temperature",
"Info": "ToRead"
},
{
"Characteristic": "Humidity",
"Info": "ToRead"
}
]
@Adirio d'accord, parlant strictement sa compréhension de liste avec des littéraux dict à l'intérieur, pas une liste mixte et une copmréhension dict. Et dans votre monde, cela vaut la peine de savoir?
@Adirio Cela implique que, en commentant simplement sur cette question mineure, je ne l'aurais pas réparé. IMHO, les bowvotes devraient être réservés aux réponses factuellement fausses (d'une manière qui compte) ou autrement pas utile, par exemple. manque le problème réel.
Vous pouvez utiliser l'outil Downvote, mais vous le souhaitez, mais l'utiliser un outil de pression pour que les autres correctent leur réponse vous semble complètement légitime. Et vous avez répondu a été fausse factuellement, l'importance de l'erreur est alors subjétive.
Réponse courte: une compréhension de la liste qui itière sur la liste des articles et crée la dicte souhaitée pour chaque élément. Simple, un doublon, pythonique, explicite, pas beaucoup plus à dire à ce sujet. P> dictlist = [{"caractéristique": élément, "info": "toread"} pour l'élément dans itemList] code> p> p>
Si vous souhaitez créer une liste de dictts, cela est facilement effectué avec A pour une boucle.
[{'Characteristic': 'Soil', 'Info': 'ToRead'}, {'Characteristic': 'Temperature', 'Info': 'ToRead'}, {'Characteristic': 'Humidity', 'Info': 'ToRead'}]
itemList = ['Soil', 'Temperature', 'Humidity']
data = []
for item in itemList:
data.append({
"Characteristic": item,
"Info": "ToRead"
})
print(str(data))
Vous pouvez essayer quelque chose comme ceci:
dicts = []
for item in itemList[:]:
newDict = {"Item:item, "Info":"toRead"}
dicts.append(newDict)
Où est ton code?
Je recommande vivement d'utiliser l'une des solutions basées sur la compréhension de liste fournies au lieu de la boucle.