使用python将文件作为json读取的替代方法

时间:2015-06-19 20:48:02

标签: python json dictionary abstract-syntax-tree

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

示例:

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

2 个答案:

答案 0 :(得分:1)

如果您希望将您的内容视为json,则需要使用有效的json语法:

{"key":[{"name": "foo"},{},{},{}]}

然后你可以使用json库将它转换为字典:

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

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

答案 1 :(得分:0)

在搜索了几种不同的语言后,我能够确定数据结构是一个Lua容器。我在这里找到了一个简单的lua-python解析器github.com/SirAnthony/slpp,我能够解析(解码)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'}}