Python解析包含转义字符\"的json数据

iochubby 2016-11-30 09:42:59
js1 = '''{
"data": "[{\"text\":\"角色权限\",\"nodes\":[{\"text\":\"超级管理员\",\"roleId\":\"1\",\"state\":{\"disabled\":true},\"state\":{\"disabled\":true}},{\"text\":\"券商管理员\",\"roleId\":\"2\"},{\"text\":\"公司管理员\",\"roleId\":\"3\"},{\"text\":\"产品管理员\",\"roleId\":\"4\"},{\"text\":\"信息浏览员\",\"roleId\":\"5\"},{\"text\":\"风险管理员\",\"roleId\":\"6\"},{\"text\":\"交易员\",\"roleId\":\"8\",\"state\":{\"checked\":true}},{\"text\":\"T0交易员\",\"roleId\":\"9\",\"state\":{\"checked\":true}},{\"text\":\"TSI交易员\",\"roleId\":\"10\"},{\"text\":\"xxxxxx\",\"roleId\":\"18\"},{\"text\":\"ROLE_HAHA\",\"roleId\":\"35\"},{\"text\":\"ROLE_AUTO_INSERT\",\"roleId\":\"98\"}]}]",
"message": "获取成功!",
"success": true
}'''

data1 = json.loads(js1) 直接报json格式错误,但如果前面加个r变成原始字符串,则可以是正确的json格式,可是js1这个字符串是动态获取的,不好直接在前面加r的

有没有大神能解析出上面的json字符串,求助攻
...全文
4686 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
屎克螂 2016-12-02
  • 打赏
  • 举报
回复
其实只要把"data": "[{}]" 改成 "data": [{}] 就好了,估计对方是拼出来的json 而且还没拼好。
js1 = '''{
    "data": "[{\"text\":\"角色权限\",\"nodes\":[{\"text\":\"超级管理员\",\"roleId\":\"1\",\"state\":{\"disabled\":true},\"state\":{\"disabled\":true}},{\"text\":\"券商管理员\",\"roleId\":\"2\"},{\"text\":\"公司管理员\",\"roleId\":\"3\"},{\"text\":\"产品管理员\",\"roleId\":\"4\"},{\"text\":\"信息浏览员\",\"roleId\":\"5\"},{\"text\":\"风险管理员\",\"roleId\":\"6\"},{\"text\":\"交易员\",\"roleId\":\"8\",\"state\":{\"checked\":true}},{\"text\":\"T0交易员\",\"roleId\":\"9\",\"state\":{\"checked\":true}},{\"text\":\"TSI交易员\",\"roleId\":\"10\"},{\"text\":\"xxxxxx\",\"roleId\":\"18\"},{\"text\":\"ROLE_HAHA\",\"roleId\":\"35\"},{\"text\":\"ROLE_AUTO_INSERT\",\"roleId\":\"98\"}]}]",
    "message": "获取成功!",
    "success": true
}'''
p = re.compile("(data['\"]?: *['\"])(.+)(['\"],)")
data = p.search(js1).group(2)
js2 = p.sub(r"\1\3", js1)
jsDict = json.loads(js2)
jsDict['data'] = json.loads(data)
print jsDict

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧