栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSON错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON错误

您有一个HJSON文档,此时您可以使用该

hjson
项目进行解析:

>>> import hjson>>> hjson.loads('{javascript_style:"Look ma, no quotes!"}')OrderedDict([('javascript_style', 'Look ma, no quotes!')])

HJSON是JSON,不需要引用对象名称,甚至不需要某些字符串值,还添加了注释支持和多行字符串,并且对应在何处使用逗号使用了宽松的规则(包括根本不使用逗号)。

或者,您可以安装和使用该

demjson
库;它支持解析有效的Javascript(缺少引号):

import demjsonresult = demjson.depre(jsonp_payload)

仅当设置该

strict=True
标志时,才
demjson
拒绝解析您的输入:

>>> import demjson>>> demjson.depre('{javascript_style:"Look ma, no quotes!"}'){u'javascript_style': u'Look ma, no quotes!'}>>> demjson.depre('{javascript_style:"Look ma, no quotes!"}', strict=True)Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/Users/mjpieters/Development/venvs/stackoverflow-2.7/lib/python2.7/site-packages/demjson.py", line 5701, in depre    return_stats=(return_stats or write_stats) )  File "/Users/mjpieters/Development/venvs/stackoverflow-2.7/lib/python2.7/site-packages/demjson.py", line 4917, in depre    raise errors[0]demjson.JSONDepreError: ('JSON does not allow identifiers to be used as strings', u'javascript_style')

使用正则表达式,您可以尝试使用正则表达式将其合法化为有效JSON;但是,这 可能 会导致误报。该模式为:

import revalid_json = re.sub(r'(?<={|,)([a-zA-Z][a-zA-Z0-9]*)(?=:)', r'"1"', jsonp_payload)

这与

{
或匹配
,
,后跟Javascript标识符(一个字符,后跟更多字符或数字),然后直接跟一个
:
冒号。如果您引用的值包含任何此类模式,则将获得无效的JSON。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/366282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号