python - 如何从文件中创建/读取嵌套字典?
问题描述
这是文本文件1的内容
name = test1,description=None,releaseDate="2020-02-27"
name = test2,description=None,releaseDate="2020-02-28"
name = test3,description=None,releaseDate="2020-02-29"
我想要这样的嵌套字典。如何创建这个?
{ 'test1': {'description':'None','releaseDate':'2020-02-27'},
'test2': {'description':'None','releaseDate':'2020-02-28'},
'test3': {'description':'None','releaseDate':'2020-02-29'}}
在此之后,我想通过“for”循环将这些值附加到以下代码行中以获取项目列表。
示例:对于project="IJTP2"
想要遍历字典中的每个名称,如下所示
project.create(name="test1", project="IJTP2", description=None, releaseDate="2020-02-27")
project.create(name="test2", project="IJTP2", description=None, releaseDate="2020-02-28")
project.create(name="test3", project="IJTP2", description=None, releaseDate="2020-02-29")
现在到下一个项目:
项目列表存储在另一个文件中,如下所示
IJTP1
IJTP2
IJTP3
IJTP4
我刚开始研究 Python,从未研究过嵌套字典。
解决方案
我假设:
- 每个文件行都有逗号分隔的列
- 每列只有一个
=
,左边是键,右边是值 - 只有第一列是特殊的(名称)
当然,正如@Alex Hall 提到的,我也推荐 JSON 或 CSV。
无论如何,我为您的案例编写了代码。
d = {}
with open('test-200229.txt') as f:
for line in f:
(_, name), *rest = (
tuple(value.strip() for value in column.split('='))
for column in line.split(',')
)
d[name] = dict(rest)
print(d)
输出:
{'test1': {'description': 'None', 'releaseDate': '"2020-02-27"'}, 'test2': {'description': 'None', 'releaseDate': '"2020-02-28"'}, 'test3': {'description': 'None', 'releaseDate': '"2020-02-29"'}}
推荐阅读
- alexa - 获取 RequestId:
在 Lambda for Alexa 技能中完成请求错误之前进程退出 - r - 按组将 geom_point 拆分为象限和颜色
- charts - 谷歌图表:动画不适用于一个图表,指向标题区域中的注释
- c# - Rasbperry 和 Xamarin:低功耗蓝牙
- android - How I can specify the priority on FCM message?
- python - PIP 升级包无法正常工作
- javascript - 如何在隐藏系列的同时保持 highcharts 传奇“开启”
- git - 如何在 Git 中将文件重命名和文件更改拆分为两个提交?
- html - 使用 css 垂直格式化输入和标签标签
- java - 使用 linearId 检索信息(对 Corda 节点的简单查询)