python json用于解析
字符串的组成如下所示:python json用于解析,python,json,parsing,Python,Json,Parsing,字符串的组成如下所示: {resp_to={request=objects_download}|objects={object1={object_name=Name of object 1|objecttype=type1}|object2={object_name=Name of object 2|objecttype=type1}}|error=0} 如何为对象中包含的所有对象提取所有对象名称的最佳方法 我对json感到困惑,理解它的工作原理让我发疯。您可以使用递归下降解析器解析文本,例如
{resp_to={request=objects_download}|objects={object1={object_name=Name of object 1|objecttype=type1}|object2={object_name=Name of object 2|objecttype=type1}}|error=0}
如何为对象中包含的所有对象提取所有对象名称的最佳方法
我对json感到困惑,理解它的工作原理让我发疯。您可以使用递归下降解析器解析文本,例如: 例如:
import json
text = ("{resp_to={request=objects_download}|"
"objects={object1={object_name=Name of object 1|objecttype=type1}"
"|object2={object_name=Name of object 2|objecttype=type1}}|error=0}")
obj = Parser()(text)[0] # parse text into a dict
print(json.dumps(obj, indent=2)) # pretty print
输出:
{
"resp_to": {
"request": "objects_download"
},
"objects": {
"object1": {
"object_name": "Name of object 1",
"objecttype": "type1"
},
"object2": {
"object_name": "Name of object 2",
"objecttype": "type1"
}
},
"error": 0
}
这种语法不是JSON。不过我不知道那是什么语法。非常感谢Martijn,我尝试用python-mjson.tool解析它,事实上它给了我一个“没有JSON对象可以被解码”。问题是从你的潜在客户那里得到对象名作为列表的最佳方式是什么?你可以使用一些正则表达式替换(或类似的东西:
str.replace('=',':')
——但是第二种方法不是一个很好的主意)。@MostafaR:这里没有引号,我们不知道这种格式如何处理unicode。不是个好主意。@MartijnPieters是的,只是个简单的想法;-)这只适用于这个执行程序,但我需要解析的输出对于lenth和object是可变的。@TonyManero:我不明白。要包含Parser()
失败的示例输入
{
"resp_to": {
"request": "objects_download"
},
"objects": {
"object1": {
"object_name": "Name of object 1",
"objecttype": "type1"
},
"object2": {
"object_name": "Name of object 2",
"objecttype": "type1"
}
},
"error": 0
}