![](/img/trans.png)
[英]How to create a list of dictionaries from a csv file without list comprehension
[英]How to create csv file with headers from list of dictionaries?
如何創建一個 csv 文件,標題為:姓名、職位、email 地址和薪水。 這些行應填充適當的值。
[{'Key': 'name', 'Value': 'bob'}, {'Key': 'job', 'Value': 'doctor'}, {'Key': 'email', 'Value': 'ebob@gmail.com'}, {'Key': 'salary', 'Value': '10000'}]
我檢查的每個解決方案的結構都不同,我不確定如何找到這個特定的解決方案。
https://blog.finxter.com/how-to-convert-a-python-dict-to-csv-with-header/
這是在 python 中表達數據的一種奇怪方式。字典有鍵值對,並且有一個dict
來分隔它們充其量是尷尬的。 但是您可以組裝自己的理智dict
並使用它來編寫 CSV。您的示例只有 1 行數據,
import csv
data = [{'Key': 'name', 'Value': 'bob'}, {'Key': 'job', 'Value': 'doctor'}, {'Key': 'email', 'Value': 'ebob@gmail.com'}, {'Key': 'salary', 'Value': '10000'}]
header = ('name', 'job', 'email', 'salary')
row = {kv_dict['Key']:kv_dict['Value'] for kv_dict in data}
with open("test.csv", "w", newline="") as outfile:
writer = csv.DictWriter(outfile, fieldnames=header)
writer.writeheader()
writer.writerow(row)
import csv
mylist = [{'Key': 'name', 'Value': 'bob'}, {'Key': 'job', 'Value': 'doctor'},
{'Key': 'email', 'Value': 'ebob@gmail.com'}, {'Key': 'salary', 'Value': '10000'}]
data = {}
for d in mylist:
data[d['Key']] = d['Value']
headers = list(data[0].keys())
with open('data.csv', 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=headers)
writer.writeheader()
for d in data:
writer.writerow(d)
f.close()
答案的草稿。
import csv
l = [{'Key': 'name', 'Value': 'bob'}, {'Key': 'job', 'Value': 'doctor'}, {'Key': 'email', 'Value': 'ebob@gmail.com'}, {'Key': 'salary', 'Value': '10000'}]
d = {v["Key"]: v["Value"] for v in l}
d
{'name': 'bob', 'job': 'doctor', 'email': 'ebob@gmail.com', 'salary': '10000'}
data_list = []
data_list.append(d)
with open('output_file.csv', 'w') as csv_file:
hdrs = d.keys()
csvDictR = csv.DictWriter(csv_file, hdrs)
csvDictR.writeheader()
csvDictR.writerows(data_list)
cat output_file.csv
name,job,email,salary
bob,doctor,ebob@gmail.com,10000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.