首页 > 解决方案 > Python:如何将包含字典的列表从文本文件读取到列表对象

问题描述

我有一个文本文件。这是一个包含字典的列表列表。我如何实现这一目标?

[[
    {'amount': 23418.945947265624, 'ID': 'ID:153572', 'loan': None, 'status': 'SUCCESS'}, 
    {'amount': -106921.3234375, 'ID': 'ID:82295', 'loan': None,  'status': 'SUCCESS'}, 
    {'amount': 52857.603124999994, 'ID': 'ID:102957', 'loan': None, 'status': 'SUCCESS'}, 
    {'amount': 50788.3150390625, 'ID': 'ID:157364', 'loan': None,  'status': 'SUCCESS'}, 
    {'amount': -93917.1078125, 'ID': 'ID:96633', 'loan': None,  'status': 'SUCCESS'}
]]

我尝试了以下方法:

with open('case1-gather_results.txt') as f:
    lines = f.readlines()
    
testString = lines[0]

json_acceptable_string = testString.replace("'", "\"")
print(json_acceptable_string)
d = json.loads(json_acceptable_string)

将文件读取到列表中,并且这样做,我试图解析以下错误:

JSONDecodeError:期望值:第 1 行第 70 列(字符 69)

标签: python-3.x

解决方案


请尝试ast.literal_eval()

from ast import literal_eval

with open('case1-gather_results.txt') as f:
    d = literal_eval(f.read())

推荐阅读