无法将文本文件转换为字典

时间:2018-06-05 21:56:28

标签: python python-3.x

如何将文本文件转换为字典 示例文本文件是

{'name': 'sk', 'confirm': 'sk', 'passwd': 'sk', 'phone': 'sk', 'uname': 'sk', 'email': 'sk'}
{'name': 'skak', 'confirm': 'ak', 'passwd': 'ak', 'phone': 'ak', 'uname': 'ak', 'email': 'ak'}

和 因为我正在使用代码

d = dict((line.strip().split(' = ') for line in file('raw_data'))) 
print(d)

我收到了这个错误

Traceback (most recent call last):
File "test.py", line 1, in <module>
d = dict((line.strip().split(' = ') for line in file('raw_data')))
ValueError: dictionary update sequence element #0 has length 1; 2 is required

请帮我解决这个错误

1 个答案:

答案 0 :(得分:0)

对数据文件进行评估。如果您对文本文件没有完全控制和信心,请不要这样做:

with open('datafile.txt') as f:
    for line in f:
        d = eval(line)
        print d

输出:

{'name': 'sk', 'uname': 'sk', 'passwd': 'sk', 'confirm': 'sk', 'phone': 'sk', 'email': 'sk'}
{'name': 'skak', 'confirm': 'ak', 'passwd': 'ak', 'phone': 'ak', 'uname': 'ak', 'email': 'ak'}

将单引号替换为double并将其读作json会更安全。

import json
d = json.loads(line.replace("'", '"'))