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?
Réponses:
1 pour la réponse № 1Que 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