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”这种也是可以通过上面的校验的(如下图)
所以要针对这块进行优化下