首页 > 解决方案 > 如何从文件创建嵌套字典列表

问题描述

我有一个输入文本文件,其中包含一个键/值对列表,我想将其作为字典列表读入 python,但似乎无法使其按预期工作。请注意,该文件不是有效的 json 格式,所以我不能使用json内置的,这个问题不是这个的重复。我怀疑我在这里遗漏了一些明显的东西,因此非常感谢任何指导。

# /tmp/tmp.txt
[{'k1': {'k2': {'k3': ['a', 'b', 'c']}}}, {'k4': {'k5': {'k6': ['v', 'x', 'y', 'z']}}}]

由于这个文件包含一个包含 2 个元素的列表,我希望len2 和 2 ,type但这list不是我所看到的。

with open('/tmp/tmp.txt', encoding='utf-8') as data_file:
    data = data_file.read()

print(len(data)) # <-- the goal is for this to show 2
print(type(data)) # <-- the goal is for this to return `list`

输出:

88
<class 'str'>

标签: pythonpython-3.x

解决方案


data的是一个字符串。您可以将其转换为列表literal_eval

import ast
data_list = ast.literal_eval(data)
len(data_list)
#2

推荐阅读