python - 如何从文件创建嵌套字典列表
问题描述
我有一个输入文本文件,其中包含一个键/值对列表,我想将其作为字典列表读入 python,但似乎无法使其按预期工作。请注意,该文件不是有效的 json 格式,所以我不能使用json
内置的,这个问题不是这个的重复。我怀疑我在这里遗漏了一些明显的东西,因此非常感谢任何指导。
# /tmp/tmp.txt
[{'k1': {'k2': {'k3': ['a', 'b', 'c']}}}, {'k4': {'k5': {'k6': ['v', 'x', 'y', 'z']}}}]
由于这个文件包含一个包含 2 个元素的列表,我希望len
2 和 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'>
解决方案
你data
的是一个字符串。您可以将其转换为列表literal_eval
:
import ast
data_list = ast.literal_eval(data)
len(data_list)
#2
推荐阅读
- ruby - 如何在 ruby on rails 上使用我的小课堂
- java - 清单合并失败 (AppIntro)
- python - 在抓取之前等待页面加载
- google-api - 在 Google 文档中打开图片
- python - while 循环中的错误与 try-except 相结合
- java - 执行正确的代码后,如何阻止我的代码执行每个 println?
- r - 如何根据元素ggplot r的值给出直方图中特定颜色的条形图
- java - 在springboot中获取存储库对象null
- c# - User checked item in CheckedListBox
- javascript - 将 javascript 变量插入到转义的 JSON 字符串中