Python 3.3将字典数据写入CSV

时间:2018-01-17 06:09:44

标签: python python-3.x csv dictionary export-to-csv

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

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

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

姓名,手机,key3

ABC XYZ,1234567890,值等等14键:值对

我正在使用的代码 -

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?

谢谢,

SANKET。

4 个答案:

答案 0 :(得分:2)

确保您正在导入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)

答案 1 :(得分:0)

您可以在python 3.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

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

如果my_dict是你的字典,那么

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