Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字典设置为单独的列_Python_Python 3.x - Fatal编程技术网

Python 将字典设置为单独的列

Python 将字典设置为单独的列,python,python-3.x,Python,Python 3.x,我想把我的字典放到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':

我想把我的字典放到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=",")

我想这就是你要找的

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'}


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())
输出(从值中删除,以便于重新加载):

如果使用,则可以指定引用字符并引用所有字段:

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())
输出(此处的制表位看起来像不同间隔的空格):


您能展示一个预期输出的示例吗?您有
作为千位分隔符-有
作为csv分隔符,这将使它很难再次加载谢谢您的回复,但我仍然在一个单元格中获得键和值。我想把键和值放在不同的单元格中。你说的“1单元格”是什么意思?是否使用excel?使用excel打开文件时,请勾选“
作为dividercharacter…”复选框。。。或者在编写时使用制表符
'\t'
f.write(“key\tvalue\n”)
f.write(f“{k}\t{v.replace(',','')}\n”)
。。这不是“写作问题”,而是读者的问题
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"