繁体   English   中英

如何从文件创建/读取嵌套字典?

[英]How to create/read nested dictionary from file?

这是文本文件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"'}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM