Le format du dictionnaire Je fais référence à ce que cela ressemble à ceci (fyi, ce ne sont que des joueurs de football): est-il possible d'utiliser ce dictionnaire pour écrire quelque chose comme le tableau ci-dessous pour Un CSV? P> First Name: Last Name: Team:
Shkodran Mustafi Arsenal
Héctor BellerÃn Arsenal
Sead Kolasinac Arsenal
5 Réponses :
CSV est un format qui peut représenter tout hachage de hachage ou si je suppose que vous utilisez correctement le dictionnaire Python des dictionnaires. P>
Vous devez écrire le bon anal erser p>
Une manière d'utiliser un différent différent différent pour représenter les hachages imbriquées par hasard. Supports { P>
{, shkodran musgotafi, {, premier, shkodran, dernier, musgotafi, équipe, arsenal,},} p>
Je vous suggère d'utiliser JSON, YAML ou HOCON, ils sont plus faciles sur l'œil humain p>
donc essentiellement itération du dictionnaire et le mettre au format .csv?
Merci beaucoup pour la suggestion! Bien que lorsque j'essaie ce code, je reçois cette erreur "TypeError: Séquence de la séquence 0: Instance attendue STR, liste trouvée".
C'est étrange, je suppose que cela se produit sur la ligne code>? Je ne peux pas sembler obtenir que cela se produise peut avoir à voir avec la version Python ou le système d'exploitation?
@Luke j'ai trouvé comment obtenir cette erreur apparaîtra. Dans vos autres données, il doit y avoir une liste comme valeur dans le premier élément clé, j'ai modifié pour compenser cela, juste pour le plaisir.
Si vous voulez vraiment les colonnes des dictionnaires internes écrites dans un fichier CSV, cela peut être fait très facilement avec des pandas.
First Name,Last Name,Team Shkodran,Mustafi,Arsenal Héctor,BellerÃn,Arsenal Sead,Kolasinac,Arsenal
C'est honnêtement la meilleure réponse si vous avez plus de 100 000 entrées, Pandas prend un peu pour démarrer, mais après cela, la vitesse paiera.
Un objet que vous pouvez trouver utile est Exemple Utilisation: P> csv.dictwriter code>: https://docs.python.org/2/library/csv.html#csv.dicicwriter import csv
player_list = {
'Shkodran Mustafi': {'first': 'Shkodran', 'last': 'Mustafi','team': 'Arsenal'},
'Héctor BellerÃn': {'first': 'Héctor', 'last': 'BellerÃn','team': 'Arsenal'},
'Sead Kolasinac': {'first': 'Sead', 'last': 'Kolasinac', 'team': 'Arsenal'}
}
with open("player_data.csv", 'w') as fp:
writer = csv.DictWriter(fp, fieldnames=['first', 'last', 'team'])
writer.writeheader()
for player_name, player_info in player_list.items():
writer.writerow(player_info)
Mis à part les en-têtes qui ont tort et la terminaison de ligne \ n \ n code> dans Windows.
@James Gabriel - merci beaucoup! Cela a fonctionné parfaitement! Je vais lire plus loin sur l'objet CSV.Dicterreader. Merci encore!
Dans ce cas, vous n'avez même pas besoin de vous inquiéter du fait que c'est un dictionnaire de dictionnaires. Vous ne suscitant jamais le dictionnaire "intérieur" de toute façon, vous pouvez donc faire quelque chose comme ceci: Dans ce cas, il n'y a que 3 valeurs, donc je viens d'utiliser la concaténation de la chaîne, mais Si vous faites plus de valeurs, vous voudrez peut-être essayer quelque chose comme ce que fait @Tgikal. P> p>
Merci beaucoup! Je commence à me mettre la tête. Votre message a vraiment aidé!
@Luke content que je puisse aider
Votre sortie souhaitée n'est pas un CSV.
@Scotthunter L'OP illustre simplement ce que la table devrait ressembler.
Bonjour, oui - J'essayais juste d'illustrer ce que la table devrait ressembler. Et en ce qui concerne les noms, je les utilisais que pour les utiliser en tant qu'esponsultiers dans la question. Le vrai dictionnaire a environ 20 paires de clés. J'espère que cela effraie les choses. Merci beaucoup!