【发布时间】:2019-01-08 09:11:34
【问题描述】:
我知道有很多类似的问题,比如:
Simple way to convert a string to a dictionary
但是,我正在尝试不使用正则表达式。
例如,我知道我可以做到这一点
string = "abc=123,xyz=456"
dict(x.split('=') for x in string.split(','))
给予:
{'xyz': '456', 'abc': '123'}
我正在尝试为嵌套字典执行此操作。而且我更喜欢尽可能避免使用正则表达式。
我的示例字符串是:
"{ currNode = {currIndex = 23, currElem = 0x0}, size = 23}"
代码应将其转换为
{ 'currNode': { 'currIndex':'23', 'currElem':'0x0'}, 'size':'23' }
这基本上是一个嵌套的 Python 字典。我所包含的链接为我提供了一个空字典,用于此类示例。
【问题讨论】:
-
你可以把它放在一个函数中,然后检查正则表达式给出的值是否包含
{}s。如果是这样,则通过将值传递回函数来进行递归。这个问题叫递归。不过,可能已经有一个内置的解析器可以解决这个问题。 -
这基本上是“gdb”打印数据的方式。你会碰巧知道一个内置的解析器吗?
-
不,老实说,我不经常使用 Python。我只是评论,因为你没有得到其他帮助。对不起。
-
啊,没关系。在写递归函数的作品中。我可能会自己把它作为答案。
标签: string python-3.x