/ / écrire un dictionnaire en csv conduisant à une erreur de valeur - python, csv, dictionnaire

écrire un dictionnaire en csv conduisant à une erreur de valeur - python, csv, dictionnaire

J'ai le dictionnaire suivant:

details = {"Primary_key" : [{"key_1": "val", "key_2": "val", "key_3": "val", "key_4": "2016", "key_5": ["val_1", "val_2", "val_3"], "key_6": "val"}, {"key_1": "val", "key_2": "val", "key_3": "val", "key_4": "val", "key_5": ["val_1","val_2"], "key_6": "val"}, {"key_1": "val", "key_2": "val", "key_3": "val", "key_4": "val", "key_5": ["val_1", "val_2"], "key_6": "val"}] }

.

J'essaie d'écrire ceci dans un fichier csv, avec les en-têtes comme clés. Voici le code que j'utilise:

 with open("json_test.csv","wb") as f:
writer = csv.DictWriter(f, fieldnames= ["key_1","key_2","key_3","key_4","key_5","key_6"])
writer.writeheader()
for d in details:
writer.writerow(d)

Comment obtenir le format csv suivant?

Format csv souhaité

Réponses:

1 pour la réponse № 1

Que diriez-vous d'utiliser Pandas?

import pandas as pd

details = {"Primary_key" : [{"key_1": "val", "key_2": "val", "key_3": "val", "key_4": "2016", "key_5": ["val_1", "val_2", "val_3"], "key_6": "val"}, {"key_1": "val", "key_2": "val", "key_3": "val", "key_4": "val", "key_5": ["val_1","val_2"], "key_6": "val"}, {"key_1": "val", "key_2": "val", "key_3": "val", "key_4": "val", "key_5": ["val_1", "val_2"], "key_6": "val"}] }

df = pd.DataFrame.from_dict(details["Primary_key"])
df.index = ["primary_key"]*len(df)
df.to_csv("output.csv")

output.csv:

# %load output.csv
,key_1,key_2,key_3,key_4,key_5,key_6
primary_key,val,val,val,2016,"["val_1", "val_2", "val_3"]",val
primary_key,val,val,val,val,"["val_1", "val_2"]",val
primary_key,val,val,val,val,"["val_1", "val_2"]",val