将字典值转换为列表

时间:2014-05-28 15:31:37

标签: python

我正在使用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;这使得对我来说,为什么那也不行。

我确信有一种简单的方法可以完成我所追求的目标,并希望对此事有任何帮助。

1 个答案:

答案 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'}]