从python中的字典元素列表创建一个csv文件

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)

谢谢!

Rya*_*n G 5

你看过熊猫吗?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)