use*_*439 0 python csv dictionary
所以我有一个里面有6个dicts的列表,我想把它写成一个csv文件.我已经尝试了很多方法来做到这一点,但到目前为止我还没有成功.当我尝试将其作为列表编写时,当我尝试将其写为字典时,它会给我一个错误,它也会给我一个错误.任何人都可以指出我的写作方向.
r_vals=
[{'distance':2.35, 'mpg': 3.215, 'power': 45.0},{'distance':214.3, 'mpg': 29.3,'power': 124.0},{'distance':2.35, 'mpg': 3.215, 'power': 45.0},...{'distance':0.35, 'mpg': 45.5, 'power': 156.0}]
Run Code Online (Sandbox Code Playgroud)
或者如果有更简单的方法将其作为数据帧,我希望它看起来像这样
distance mpg power
2.35 3.215 45.0
214.3 29.3 124.0
.
.
0.35 45.5 156
Run Code Online (Sandbox Code Playgroud)
谢谢!
你看过熊猫吗?http://pandas.pydata.org/
在熊猫你可以这样做:
>>> r_vals
[{'distance': 2.35, 'power': 45.0, 'mpg': 3.215}, {'distance': 214.3, 'power': 124.0, 'mpg': 29.3}, {'distance': 2.35, 'power': 45.0, 'mpg': 3.215}, {'distance': 0.35, 'power': 156.0,'mpg': 45.5}]
>>> df = pandas.DataFrame(r_vals)
>>> df
distance mpg power
0 2.35 3.215 45
1 214.30 29.300 124
2 2.35 3.215 45
3 0.35 45.500 156
Run Code Online (Sandbox Code Playgroud)
然后你可以做一个:
df.to_csv("path.csv",index=False)
Run Code Online (Sandbox Code Playgroud)
并且您已将字典保存在内存中的数据框和csv中.
如果你想只使用原生的python,那么你可以这样做:
import csv
outfile = open("path.csv","w")
csv_writer = csv.write(outfile)
csv_writer.writerow(header)
header = r_vals[0].keys()
for row in r_vals:
csv_writer.writerow(str([row[col_name]) for col_name in header])
outfile.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |