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

2024-10-03 21:36:32 发布

您现在位置: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,从未使用过嵌套字典


Tags: 项目nameprojectnone内容列表字典create
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:32

我假设:

  • 每个文件行都有逗号分隔的列
  • 每列只有一个=和左边的键,右边的值
  • 只有第一列是特殊的(名称)

当然,正如@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"'}}

相关问题 更多 >