Python验证字符串是否为合法JSON格式的方法
本文介绍在Python中判断字符串是否为合法JSON格式的两种方法。核心思路是利用json.loads进行解析,若抛出ValueError则说明格式不合法。示例代码展示了如何封装函数,并强调需先检查变量类型是否为字符串,避免非字符串输入引发错误。
在实际开发场景中,经常需要验证一段字符串是否符合合法的JSON格式规范。
推荐使用json.loads函数来实现这一判断,这种处理方式更符合Pythonic的编程风格。
具体代码实现如下:
Python import json def is_json(myjson): try: json_object = json.loads(myjson) except ValueError, e: return False return True
运行代码编辑模式复制折叠
执行上述代码后的输出结果如下:
Python
print is_json("{}") #prints True
print is_json("{asdf}") #prints False
print is_json('{ "age":100}') #prints True
print is_json("{'age':100 }") #prints False
print is_json("{\"age\":100 }") #prints True
print is_json('{"age":100 }') #prints True
print is_json('{"foo":[5,6.8],"foo":"bar"}') #prints True
此外,还可以采用另一种更为严谨的判断方法:
# -*- coding=utf-8 -*-
import json
def check_json_format(raw_msg):
"""
用于判断一个字符串是否符合Json格式
:param self:
:return:
"""
if isinstance(raw_msg, str): # 首先判断变量是否为字符串
try:
json.loads(raw_msg, encoding='utf-8')
except ValueError:
return False
return True
else:
return False
if __name__ == "__main__":
print check_json_format("""{"a":1}""")
print check_json_format("""{'a':1}""")
print check_json_format({'a': 1})
print check_json_format(100)
该方法首先检查输入变量是否为字符串类型,因为如果直接传入int或其他数据类型,程序会直接报错。
运行上述改进后程序的输出结果为:
True False False False
总结
以上即为Python中判断字符串是否为JSON格式方法的完整分享,希望能对大家有所帮助。感兴趣的朋友可继续查阅本站其他文章,如python好玩的项目—色情图片识别代码分享、深入理解python中函数传递参数是值传递还是引用传递、Python面向对象编程基础解析(二)等。如有任何疑问,欢迎随时留言,小编会及时回复。感谢各位对本站的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









