我有一个.txt文件,其中包含以下格式的dict:
{
"key1": "value1",
"key2": "value2",
}
我正在尝试将其读入变量,以便我可以使用它。我可以这样做:
f = open('my_dict.txt', 'r')
my_dict = eval(f.read())
但如果我尝试使用下面的内容,Python会在第一个“{”之后抱怨意外的EOF。
dict_from_file = []
with open('my_dict.txt', 'r') as inf:
for line in inf:
dict_from_file.append(eval(line))
print(dict_from_file)
{
^
SyntaxError: unexpected EOF while parsing
我确定它只是与文件中逐行格式化的所有事情有关。我想我可以重新格式化文件,以便用“,”替换换行符,但我喜欢在一行上具有每个键:值对的可读性。我希望能够使用with
。我怎么能这样做?
答案 0 :(得分:2)
问题是你不能直接eval('{')
,它会引发错误:
SyntaxError: unexpected EOF while parsing
将它们附加到字符串'{"key1": "value1","key2": "value2",}'
,然后eval
,它与您的代码my_dict = eval(f.read())
试试这个:
dict_from_file = ''
with open('my_dict.txt', 'r') as inf:
for line in inf:
dict_from_file= dict_from_file+(line.strip())
print eval(dict_from_file)
输出:
{'key2': 'value2', 'key1': 'value1'}
答案 1 :(得分:1)
根据此json specification,这是一个格式错误的JSON文件,带有逗号。
使用json模块
可以很容易地将正确的json文件读入dict$primary-color: #64b5f6;
$darken: darken($primary-color, 7%);
$lighten: lighten($primary-color, 20%);