在实际工作中,有时候需要对判断字符串是否为合法的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