Python CSV到目录
我有一个CSV文件,其中包含有关 汽车和电子邮件Python CSV到目录,python,csv,Python,Csv,我有一个CSV文件,其中包含有关 汽车和电子邮件 BMW, person1@mail.com Mercedes, person2@mail.com Dodge, person1@mail.com 等等 我正试图做的脚本,使一个字典从CSV的电子邮件是关键和汽车是价值。每个键都可以有更多的值 import csv reader = csv.reader(open('report.csv')) output = {} for row in reader: key = row[1] value
BMW, person1@mail.com
Mercedes, person2@mail.com
Dodge, person1@mail.com
等等
我正试图做的脚本,使一个字典从CSV的电子邮件是关键和汽车是价值。每个键都可以有更多的值
import csv
reader = csv.reader(open('report.csv'))
output = {}
for row in reader:
key = row[1]
value = row[0]
if key in output:
if row[0] == output.get(key):
pass
else:
output[key].append(value)
output[key] = value
print(output)
对于每一行,我都要检查emailkey的carvalue值是否已经存在。如果是,则传递到下一行,如果不是,则向键添加值
输出应该是
{'person1@mail.com': ['BMW', 'Dodge'],'person2@mail.com': ['Mercedes']}
但编译后出现错误“str”对象没有属性“append”
谢谢好吧,您正在尝试将字符串附加到输出[key].appendvalue中的字符串。其中输出[key]本身就是一个字符串 使用列表将值添加为[value],以便可以追加
import csv
reader = csv.reader(open('report.csv'))
output = {}
for row in reader:
key = row[1]
value = row[0]
print key, value
if key not in output:
output[key] = [value]
else:
output[key].append(value)
print(output)
# output
# {' person2@mail.com': ['Mercedes'], ' person1@mail.com': ['BMW', 'Dodge']}
使用该模块,您可以使用defaultdict对象来实现所需的输出
import csv
from collections import defaultdict
d =defaultdict(list)
with open("t.csv","rb") as f:
reader = csv.reader(f)
for line in reader:
d[line[1]].append(line[0])
产出:
d
defaultdict(list,
{' person1@mail.com': ['BMW', 'Dodge'],
' person2@mail.com': ['Mercedes']})
想想错误的文本,你试图附加到哪个对象,以及你是如何创建这个对象的。我想你知道输出[key]是什么,它不是列表。提示:你的字典值是字符串还是数组?应该是什么?工作!谢谢你的提示: