在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。
答案 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')