使用python将文件读取为json的另一种方法

使用python将文件读取为json的另一种方法,python,json,dictionary,abstract-syntax-tree,Python,Json,Dictionary,Abstract Syntax Tree,我有一个文件,其中包含与下面所示示例类似的信息。我想知道是否有一种方法可以使用python读取此文件并将其用作json。我知道如何打开它并处理文本,但还有其他方法吗 例如: key={{name='foo', etc..},{},{},{}} 如果希望内容被视为json,则需要具有有效的json语法: {"key":[{"name": "foo"},{},{},{}]} 然后可以使用json库将其转换为字典: >>> import json >>> jso

我有一个文件,其中包含与下面所示示例类似的信息。我想知道是否有一种方法可以使用python读取此文件并将其用作json。我知道如何打开它并处理文本,但还有其他方法吗

例如:

key={{name='foo', etc..},{},{},{}}

如果希望内容被视为json,则需要具有有效的json语法:

{"key":[{"name": "foo"},{},{},{}]}
然后可以使用json库将其转换为字典:

>>> import json
>>> json.loads('{"key":[{"name": "foo"},{},{},{}]}')
{u'key': [{u'name': u'foo'}, {}, {}, {}]}

此外,如果无法将文件内容更改为正确的json语法,则需要为特定情况开发解析器。

在搜索了几种不同的语言后,我能够确定数据结构是Lua容器。我在github.com/sirthony/slpp找到了一个简单的lua python解析器,我能够解析(解码)lua数据结构。下面是一个使用slpp.py解析lua容器的示例,我希望这能帮助任何有类似问题的人

>>> from slpp import slpp as lua
>>> data = lua.decode('{ array = { 65, 23, 5 }, dict = { string = "value",    array = { 3, 6, 4}, mixed = { 43, 54.3, false, string = "value", 9 } } }')
>>> print data

{'array':[65,23,5],'dict':{'mixed':{0:43,1:54.33,2:False,4:9,'string':'value'},'array':[3,6,4],'string':'value'}}

你所拥有的既不是有效的Python也不是JSON语法。我知道语法不是有效的JSON或Python。我试图找到一种使用Python将日期转换为JSON或字典的方法。任何一个都可以。如果可能的话,我宁愿不使用ast。如果有人曾经遇到过这种情况,并有一个解决方案,我将不胜感激的回应。thanksWe可以使用正则表达式将name='foo'更改为“name”:“foo”,问题是key看起来像一个列表,但它使用了大括号。代码很难确定这是一个列表还是一个字典。你从哪里得到的文本?也许我们可以从那里开始研究哪种语言产生了它。它看起来不像我懂的任何语言(但我只懂一两种语言),谢谢你的回答。我将开始研究解析器,因为转换为JSON不是一个选项,除非我想在本地复制文件并执行文本操作。我将不得不进行实验,看看哪一个时间消耗较少。