Python验证字符串是否为合法JSON格式的方法

阿麦
阿麦
发布时间:2026-10-13 | 3人浏览过
原创

本文介绍在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面向对象编程基础解析(二)等。如有任何疑问,欢迎随时留言,小编会及时回复。感谢各位对本站的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表