如何在嵌套结构中存储层次结构信息

2024-06-17 15:02:42 发布

您现在位置:Python中文网/ 问答频道 /正文

希望你们都做得很好

下面是从文档中提取到.TXT文件的内容。 我希望阅读包含以下内容的文本文件:

1 Main Heading 1
1.1 Sub-heading 1
1.2 Sub-heading 2
2 Main Heading 2
2.1 Sub-heading 1
2.1.1 Sub-Sub-heading 1
2.1.2 Sub-Sub-heading 2

阅读后,我希望将其动态存储到Python字典中,即嵌套列表,如下所示:

{"file name": { "Main Heading 1": { "Sub-heading 1" : [], "Sub-heading 2" : [] }},
              { "Main Heading 2": { "Sub-heading 1": [ "Sub-Sub-heading 1", "Sub-Sub-heading 2" ] } } }

以上不是一个固定的结构,可以与不同的文件动态,我将进一步自动化的过程中循环。 我是嵌套字典的新手,并且一直处于“.txt文件->;JSON”转换阶段。这方面的任何帮助都会非常有用。谢谢


Tags: 文件name文档txt内容列表字典main
1条回答
网友
1楼 · 发布于 2024-06-17 15:02:42
import json

toc = """1 Main Heading 1
1.1 Sub-heading 1
1.2 Sub-heading 2
2 Main Heading 2
2.1 Sub-heading 1
2.1.1 Sub-Sub-heading 1
2.1.2 Sub-Sub-heading 2"""

myfile = 'myfile'

data = {myfile:{}}
for line in toc.splitlines():
    levels, title = line.split(' ', maxsplit=1)
    levels = levels.rstrip('.').split('.')
    if len(levels) == 1:
        heading = title
        data[myfile][heading] = {}
    elif len(levels) == 2:
        sub_heading = title
        data[myfile][heading][sub_heading] = []
    if len(levels) == 3:
        data[myfile][heading][sub_heading].append(title)

print(json.dumps(data, indent=4))

输出

{
    "myfile": {
        "Main Heading 1": {
            "Sub-heading 1": [],
            "Sub-heading 2": []
        },
        "Main Heading 2": {
            "Sub-heading 1": [
                "Sub-Sub-heading 1",
                "Sub-Sub-heading 2"
            ]
        }
    }
}

相关问题 更多 >