[英]Dictionary to csv separate columns
我想將字典放入csv文件中。 我想在單獨的列中包含鍵和值。 但現在我以兩行結尾:一行包含所有鍵,而一行包含值
dic={'Previous Close': '150.42', 'Open': '165.60', 'Bid': '168.81 x 900', 'Ask': '168.90 x 800', "Day's Range": '57,881,627', '52 Week Range': '25,593,803', 'Volume': '482.308B', 'Avg. Volume': '0.65', 'Market Cap': '25.29', 'Beta (3Y Monthly)': '6.64', 'PE Ratio (TTM)': 'N/A', 'EPS (TTM)': '184.67', 'Earnings Date': '339.89', 'Forward Dividend & Yield': '308.42', 'Ex-Dividend Date': '1,110.19', '1y Target Est': '1,717.32'}
df=pd.DataFrame([(k,v) for k,v in dic.items()],columns=["key","value"] )
df.to_csv("test2.csv",sep=",")
你,
在你的數字千位分隔符-與,
為csv,分隔符,這將使它很難再加載它-我把他們趕走。
無大熊貓的解決方案:
dic={'Previous Close': '150.42', 'Open': '165.60', 'Bid': '168.81 x 900',
'Ask': '168.90 x 800', "Day's Range": '57,881,627', '52 Week Range': '25,593,803',
'Volume':'482.308B', 'Avg. Volume': '0.65', 'Market Cap': '25.29',
'Beta (3Y Monthly)': '6.64', 'PE Ratio (TTM)': 'N/A', 'EPS (TTM)': '184.67',
'Earnings Date': '339.89', 'Forward Dividend & Yield': '308.42',
'Ex-Dividend Date': '1,110.19', '1y Target Est': '1,717.32'}
with open ("t.csv","w") as f:
f.write("key,value\n")
for k,v in dic.items():
f.write(f"{k},{v.replace(',','')}\n")
print(open("t.csv").read())
輸出(從值中刪除,使重新加載更加容易):
key,value
Previous Close,150.42
Open,165.60
Bid,168.81 x 900
Ask,168.90 x 800
Day's Range,57881627
52 Week Range,25593803
Volume,482.308B
Avg. Volume,0.65
Market Cap,25.29
Beta (3Y Monthly),6.64
PE Ratio (TTM),N/A
EPS (TTM),184.67
Earnings Date,339.89
Forward Dividend & Yield,308.42
Ex-Dividend Date,1110.19
1y Target Est,1717.32
我認為這就是您要尋找的...
dic={'Previous Close': '150.42', 'Open': '165.60', 'Bid': '168.81 x 900', 'Ask': '168.90 x 800', "Day's Range": '57,881,627', '52 Week Range': '25,593,803', 'Volume': '482.308B', 'Avg. Volume': '0.65', 'Market Cap': '25.29', 'Beta (3Y Monthly)': '6.64', 'PE Ratio (TTM)': 'N/A', 'EPS (TTM)': '184.67', 'Earnings Date': '339.89', 'Forward Dividend & Yield': '308.42', 'Ex-Dividend Date': '1,110.19', '1y Target Est': '1,717.32'}
df=pd.DataFrame([[k,v] for k,v in dic.items()],columns=["key","value"] )
df.to_csv("test2.csv",sep=",")
這是我得到的輸出
key,value
0,Previous Close,150.42
1,Open,165.60
2,Bid,168.81 x 900
3,Ask,168.90 x 800
4,Day's Range,"57,881,627"
5,52 Week Range,"25,593,803"
6,Volume,482.308B
7,Avg. Volume,0.65
8,Market Cap,25.29
9,Beta (3Y Monthly),6.64
10,PE Ratio (TTM),N/A
11,EPS (TTM),184.67
12,Earnings Date,339.89
13,Forward Dividend & Yield,308.42
14,Ex-Dividend Date,"1,110.19"
15,1y Target Est,"1,717.32"
如果您使用模塊csv ,則可以指定一個引號字符並引用所有字段:
dic={'Previous Close': '150.42', 'Open': '165.60', 'Bid': '168.81 x 900',
'Ask': '168.90 x 800', "Day's Range": '57,881,627', '52 Week Range': '25,593,803',
'Volume':'482.308B', 'Avg. Volume': '0.65', 'Market Cap': '25.29',
'Beta (3Y Monthly)': '6.64', 'PE Ratio (TTM)': 'N/A', 'EPS (TTM)': '184.67',
'Earnings Date': '339.89', 'Forward Dividend & Yield': '308.42',
'Ex-Dividend Date': '1,110.19', '1y Target Est': '1,717.32'}
import csv
with open ("t.csv", "w", newline="") as f:
# quote all and use tab as quotechar - makes it easier when using excel
w = csv.writer(f, delimiter="\t", quotechar='"', quoting=csv.QUOTE_ALL)
w.writerow(["key","value"])
w.writerows( dic.items() )
print(open("t.csv").read())
輸出(此處的制表符看起來像是間隔不同的空格):
"key" "value"
"Previous Close" "150.42"
"Open" "165.60"
"Bid" "168.81 x 900"
"Ask" "168.90 x 800"
"Day's Range" "57,881,627"
"52 Week Range" "25,593,803"
"Volume" "482.308B"
"Avg. Volume" "0.65"
"Market Cap" "25.29"
"Beta (3Y Monthly)" "6.64"
"PE Ratio (TTM)" "N/A"
"EPS (TTM)" "184.67"
"Earnings Date" "339.89"
"Forward Dividend & Yield" "308.42"
"Ex-Dividend Date" "1,110.19"
"1y Target Est" "1,717.32"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.