[英]Outputting Multi-row CSV Files from Multiple Dictionaries
嗨,我正在嘗試創建一個股票的CSV表,如下所示(為簡單起見,數字設置為相同):
symbol ev_ebitda asset
msft 40 60
cvx 40 60
baba 40 60
我有一個股票代碼列表(稍后會擴展):
symbol = ["msft", "cvx", "baba"]
我使用'symbol'
, 'ev_ebitda'
和'asset'
作為鍵為每個符號創建了一個字典:
i=0
while i <len(symbol):
vars()[symbol[i]] = {}
vars()[symbol[i]]['symbol']=symbol[i]
vars()[symbol[i]]['ev_ebitda'] = 40
vars()[symbol[i]]['asset'] = 60
i +=1
因此,例如:
cvx = {'asset': 60, 'ev_ebitda': 40, 'symbol': 'cvx'}
然后,我嘗試使用以下代碼輸出表:
header = ["symbol","ev_ebitda","asset"]
f = open('output.csv', 'wb')
w =csv.DictWriter(f, fieldnames = header)
w.writeheader()
w.writerow() #not sure what to put in here
我不確定如何從多個字典中寫入多行。 我嘗試遵循此討論中的方法,但沒有成功。 過去8個小時,我一直在努力解決問題,非常感謝您的幫助! 這是我完整的代碼:
import csv
symbol = ["msft", "cvx", "baba"]
header = ["symbol","ev_ebitda","asset"]
#create dictionary from the symbol list
i=0
while i <len(symbol):
vars()[symbol[i]] = {}
vars()[symbol[i]]['symbol']=symbol[i]
vars()[symbol[i]]['ev_ebitda'] = 40
vars()[symbol[i]]['asset'] = 60
i +=1
#output csv
f = open('output.csv', 'wb')
w =csv.DictWriter(f, fieldnames = header)
w.writeheader()
w.writerow(cvx)
在使用DictWriter
,您需要按以下方式構造每行字典:
import csv
symbol = ["msft", "cvx", "baba"]
header = ["symbol","ev_ebitda","asset"]
with open('output.csv', 'wb') as f_output:
csv_output = csv.DictWriter(f_output, fieldnames=header)
csv_output.writeheader()
for s in symbol:
row = {'asset': 60, 'ev_ebitda': 40, 'symbol': s}
csv_output.writerow(row)
這將為您創建一個輸出CSV文件,如下所示:
symbol,ev_ebitda,asset
msft,40,60
cvx,40,60
baba,40,60
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.