在实际工作中,有时候需要对判断字符串是否为合法的json格式
解决方法使用json.loads,这样更加符合‘Pythonic'写法
代码示例:
1
2
3
4
5
6
7
8
|
Python
import json
def is_json(myjson):
try :
json_object = json.loads(myjson)
except ValueError, e:
return False
return True
|
运行代码编辑模式复制折叠
输出结果:
1
2
3
4
5
6
7
8
|
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
|
下面再介绍一个方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# -*- 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或这其他类型,会发生错误。
上述程序的输出为:
1
2
3
4
|
True
False
False
False
|
总结
以上就是本文关于python判断字符串是否是json格式方法分享的全部内容,希望对大家有所帮助。有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!
原文链接:https://segmentfault.com/a/1190000011887590