我有一个csv,其中的一列与查询集匹配 我希望能够读取csv,并为每一行添加与之匹配的值。 例如我有
var group = ContactsApp.getContactGroup("System Group: My Contacts");
group.addContact(newContact);
我的csv文件包含这样的行
('1':'cat', '2':'dog', '3':'bird', '4':'rabbit')
,它们在p_id上匹配。 本质上,我希望csv与末尾的新列完全相同,例如,每一行都将显示“ cat”。
{'id': '0004B1e', 'first_name': 'Ariana', 'last_name': 'Grande', 'street_address': '211 Sing St', 'suburb': 'Boca Raton', 'state': 'QLD', 'postcode': '4120', 'phone_number': '012346583', 'p_id': '1'}
当我尝试循环执行并创建条件时,由于某种原因,它会遍历总行数。 (即,如果我有6行,它将打印36次)。 我很困惑,我不确定为什么它不起作用
{'id': '0004B1e', 'first_name': 'Ariana', 'last_name': 'Grande', 'street_address': '211 Sing St', 'suburb': 'Boca Raton', 'state': 'QLD', 'postcode': '4120', 'phone_number': '012346583', 'p_id': '1', 'column_name':'cat'}
答案 0 :(得分:0)
将pets
结果集转换为字典,然后可以对其进行正确索引。
pets = {'1':'cat', '2':'dog', '3':'bird', '4':'rabbit'}
for row in reader:
if row['p_id'] in pets:
row['column_name'] = pets[row['p_id']]
# do something with row
使用csv.DictReader
,以便行将是字典而不是列表,因此您可以使用命名键。