gpt4 book ai didi

python - 解析空格缩进数据

转载 作者:行者123 更新时间:2023-11-30 23:39:25 31 4
gpt4 key购买 nike

我有一些看起来像 YAML 的数据,但其实不是。这是一个例子;

An instance of A
objectID=123
family=abc

An instance of A
objectID=234
family=bcd
List of 4 X elements:
An instance of X:
objectID=222
name=ccc
An instance of X:
objectID=333

等等...

我需要找到一种方法让它看起来更像这样:

[
{'name': 'An instance of A',
'data': [
{'objectID': 123,
'family': 'abc'
}
]
},
...

我尝试创建一些递归函数来解析它,但最终变得一团糟。

我并不是要求一个完整的工作示例,但是在 python 中执行此操作的最佳方法是什么?自调用功能?使用另一个库(我还没有找到)?使用另一种语言来帮助我并将整个内容嵌入到 python 中?

最佳答案

使用堆栈,当您发现更多或更少的缩进级别时,可以从其中推送和弹出项目;堆栈上的每个级别都保存缩进深度和条目:

stack = [(0, {})]  # indentation level, top-level entry
entry = stack[-1][1]

for line in input:
line = line.strip()
if not line: continue

indentation = len(input) - len(input.lstrip())
if indentation > stack[-1][0]: # indented further? New entry
entry = stack[-1][1]['data'] = {}
stack.append((indentation, entry)) # push
else:
while indentation < stack[-1][0]: # indentation dropped
del stack[-1] # pop
entry = stack[-1][1]

# process line and add to entry

result = stack[0][1]

关于python - 解析空格缩进数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564108/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com