Python 3.3 将字典数据写入CSV

Python 3.3 Write dictionary data into CSV

在 windows 7 32 位上使用 Python 3.3.5,我创建了一个包含 14 个键:值对的字典,示例如下 -

{'Name': 'ABC XYZ', 'Mobile': '1234567890', key3: value3 等等}

我正在尝试以下列格式将此数据写入 CSV - 一行中的所有键及其下方的所有值 -

姓名,手机,key3

ABC XYZ, 1234567890, value3 依此类推 14 key:value 对

我正在使用的代码 -

with open("Parsed_CSV.csv", "w") as f:  
            w = csv.write(f)
            w.writerow(my_dictionary.keys())
            w.writerow(my_dictionary.values())

我遇到错误 -

  w = csv.write(f)
TypeError: must be str, not _io.TextIOWrapper

我也试过 运行 下面的代码 -

with open('Parsed_CSV.csv', 'w') as f:  
            w = csv.DictWriter(f, my_dictionary.keys())
            w.writeheader()
            w.writerow(my_dictionary)

但它也给我错误 -

w = csv.DictWriter(f, my_dictionary.keys())
AttributeError: '_io.TextIOWrapper' object has no attribute 'DictWriter'

如何使用 DictWriter?它是否带有 'csv' 模块?

谁能帮我理解这里的问题是什么以及如何以所需格式编写 CSV?

谢谢,

桑凯特。

在python3.3中可以很方便的使用pandas将字典数据写入csv

import pandas as pd
sales = {'account': ['Jones LLC', 'Alpha Co', 'Blue Inc'],
         'Jan': [150, 200, 50],
         'Feb': [200, 210, 90],
         'Mar': [140, 215, 95]}
df=pd.DataFrame.from_dict(sales)
df.to_csv('check.csv')

以上是在python2中完成的,但我认为它可以很容易地转换为python3

确保您正在导入 csv 模块并且您没有覆盖名称。 csv 应该是 'module' 对象,但根据您的错误 csv 似乎是 '_io.TextIOWrapper' 对象。这表明您已经在代码中的其他地方覆盖了名称 csv

下面的应该可以正常工作。

import csv
my_dict = {'fieldname': 'value', 'another field': 'another value'}
with open('myfile.csv', 'w') as f:
    writer = csv.DictWriter(f, fieldnames=list(my_dict.keys()))
    writer.writeheader()
    writer.writerow(my_dict)

试试这个:

File = open('your_csv_file.csv', 'wb+')
dictionary = {'Name':'abc', 'Class':'xyz', 'Section':'A'}
File.write(dictionary.keys())
File.write(dictionary.values())

如果 my_dict 是你的字典,那么

df = pd.DataFrame(my_dict.items(), columns=list(my_dict.keys()))    
df.to_csv('df.csv')