在过去的几个小时里,我一直在争取得到一个字符串转换成JSON字典。我从json.loads(什么都试过了...这将引发一个错误:的Python:不能把字符串转换成JSON
requestInformation = json.loads(entry["request"]["postData"]["text"])
//throws this error
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes:
到剥出使用应用re.sub( '\\' 混合泳 '斜线',MyString的),MyString的.SUB(......没有效果。我的问题字符串看起来像这样
'{items:[{n:\\'PackageChannel.GetUnitsInConfigurationForUnitType\\',ps:[{n:\\'unitType\\',v:"ActionTemplate"}]}]}'
此字符串的起源是,它是从谷歌浏览器HAR转储。我认为这些反斜线正从中沿着逃脱某处这样,因为HAR文件的大部分内容不包含他们,但他们在标有“文本”任何领域中常用的出现。
"postData": {
"mimeType": "application/json",
"text": "{items:[{n:'PackageChannel.GetUnitsInConfigurationForUnitType',ps:[{n:'unitType',v:\"Analysis\"}]}]}"
}
编辑我最终放弃了将上面的文本转换为JSON,而是选择了正则表达式。有时会出现斜线,有时它们不是基于我正在查看文本的内容,因此难以处理。
这是有效的JavaScript对象,但无效的json和无效的python字典。 http://json.org,可能会发现松散的json解析器。 – YOU
错误是不是反斜杠顺便说一句,它是抱怨键不双引号 – YOU
与正则表达式 '重' 模块,'>>> json.loads(应用re.sub( '(\ W +):',R“'\ 1 “: 'a.replace(”' “” ' '))){ u'items':[{u'ps ':[{u'v':u'Analysis',u'n':U 'unitType'}],u'n':u'PackageChannel.GetUnitsInConfigurationForUnitType'}]} ' – YOU