def is_json(msg):
# 首先判断是否是字符串
if isinstance(msg, str):
# 在这里先判断是否为数字类型的数据
try:
isinstance(int(msg), int)
return ("这个不是json类型数据")
except:
pass
try:
# 其次进行转换成python自带的数据类型
json.loads(msg)
return ("这个是json类型数据")
except ValueError:
return ("这个不是json类型数据")
else:
return ("这个不是json类型数据")
上面代码中为什么要先判断返回的字符串是否可以转为int类型的呢?
因为实践证明“123”这种也是可以通过上面的校验的(如下图)
所以要针对这块进行优化下