python3判断一个字符串是否为标准字符串
直接上代码
import json
def is_json(test_str):
try:
json_object = json.loads(test_str) # 通过json.loads判断
except Exception as e:
return False
return True
测试
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
存在问题
我们发现在非json字符串"123"在该方法下返回为true,明显存在问题,因此再接下来对判断方发进行改进。代码如下:
def is_json(test_str):
try:
json_object = int(test_str) # 即先判断该字符串是否为int
return False
except:
pass
try:
json_object = json.loads(test_str)
except Exception as e:
return False
return True
完美解决。