簡體   English   中英

列表中的CSV文件,其中包含多個使用Python的詞典?

[英]CSV file from a list with multiple dictionaries in Python?

我有以下形式的數據:

{'count': '274',  'file_type': 'json', 'limit': '100000',    observation_end': '9999-12-31',    'observation_start': '1776-07-04',    'observations': "[{'date': '1947-01-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '3.962'}, {'date': '1947-04-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '4.052'}, {'date': '1947-07-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '4.172'}, {'date': '1947-10-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '4.270'}, {'date': '1948-01-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '4.372'}, {'date': '1948-04-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '4.432'}, {'date': '1948-07-01', 'realtime_start': '2015-08-20', 'realtime_end': '2015-08-20', 'value': '4.521'}]

我想從中創建CSV或Excel文件,以便在不同的行中顯示不同的值。 例如,數據1948-07-01的值為4521。是否可能?如何? 我嘗試了以下操作:

writer = csv.writer(open('dict.csv', 'wb'))
for key, value in mydict.items():
    writer.writerow([key, value])

但是最后一行在單行中包含list的所有字典。

import ast # since your observations seems to be a string 
a=your_dictionary
observations=ast.literal_eval(a["observations"]) # this will convert this string to list
headers=observations[0].keys() 
writer = csv.writer(open('dict.csv', 'wb'))
writer.writerow(headers) # to make sure your headings are date,realtime_start etc
for data in observations:
    row=[data[header] for header in headers] #will create the row in same order as headers
    writer.writerow(row)

您必須先用鍵寫標題,然后再寫值。

鑒於您所有數據都具有相同的鍵,因此以下各項將起作用:

writer = csv.writer(open('dict.csv', 'wb'))
# retrieve the first dict to  write the csv header:
header = data[0].keys()
writer.writerow(header)
# iterate over data:
for data in datas:
    writer.writerow(data.values())

請記住使用collections.OrderedDict來確保.keys.values方法以相同的順序返回項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM