我正在使用python csv importer工具将值导入字典(稍后传入模板系统)。但是它将它们全部作为字符串导入。我需要将字典中的一个值拆分为基于某个分隔符的列表,让我们说' - '符号
我想我的代码不起作用,因为字符串是不可变的。
CSV文件(仅作示例)
firstname,surname,listfield
John,Smith,54-23-34-23-12
Fred,Jones,78-76-54-23-23
代码
input_file = csv.DictReader(open("import.csv"))
for record in input_file:
for key, value in record.iteritems():
if '-' in value:
value = value.split('-')
在我的模板文件中,循环遍历该值只是一次打印一个值(一个字母),因为它认为它仍然是一个字符串。
我以为我可以创建一个新的字典值作为列表来解决不可变问题,但是循环会出现一个错误,即字典中的值已经改变了#39;这使得对我来说,为什么那也不行。
我确信有一种简单的方法可以完成我所追求的目标,并希望对此事有任何帮助。
答案 0 :(得分:0)
您可以创建一个新的词典列表。
>>> final = []
>>> input_file = csv.DictReader(open("import.csv"))
>>> for record in input_file:
for key, value in record.iteritems():
if '-' in value:
record[key] = value.split('-')
final.append(record)
>>> final
[{'surname': 'Smith', 'listfield': ['54', '23', '34', '23', '12'], 'firstname': 'John'},
{'surname': 'Jones', 'listfield': ['78', '76', '54', '23', '23'], 'firstname': 'Fred'}]