2024-10-06 12:27:58 发布
网友
我在Python中有一个字符串,我想知道它是否是有效的JSON。
如果字符串不是JSON,但我不想捕获异常,json.loads(mystring)将引发错误。
json.loads(mystring)
我想要这样的东西,但不管用:
if type(mysrting) == dict: myStrAfterLoading = json.loads(mystring) else: print "invalid json passed"
我是否必须捕获该ValueError以查看我的字符串是否为JSON?
你有什么理由不想抓住这个例外吗?
请记住,在Python中测试和捕获异常的速度可能非常快,而且通常是Python的工作方式,而不是测试类型(基本上,信任duck类型并相应地作出反应)。
为了让你的头脑更放松一点,请看这里: Python if vs try-except
如果您仍然担心可读性,请在代码中添加注释以解释为什么要使用try/except;)
在过去,我自己也曾在Java背景下与这种方法作过斗争,但这是在Python中实现这一点的最简单方法。。。简单胜过复杂。
要验证字符串,需要对其进行解析—因此,如果选中,则转换字符串所需的时间实际上是解析字符串所需时间的两倍。 捕捉异常是最好的方法。 有趣的是,您仍然可以使用if-else样式的表达式:
try: json_object = json.loads(json_string) except ValueError, e: pass # invalid json else: pass # valid json
正确答案是:不要再想抓住^{}。
如果字符串是有效的json,则示例Python脚本返回布尔值:
import json def is_json(myjson): try: json_object = json.loads(myjson) except ValueError 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
你有什么理由不想抓住这个例外吗?
请记住,在Python中测试和捕获异常的速度可能非常快,而且通常是Python的工作方式,而不是测试类型(基本上,信任duck类型并相应地作出反应)。
为了让你的头脑更放松一点,请看这里: Python if vs try-except
如果您仍然担心可读性,请在代码中添加注释以解释为什么要使用try/except;)
在过去,我自己也曾在Java背景下与这种方法作过斗争,但这是在Python中实现这一点的最简单方法。。。简单胜过复杂。
要验证字符串,需要对其进行解析—因此,如果选中,则转换字符串所需的时间实际上是解析字符串所需时间的两倍。 捕捉异常是最好的方法。 有趣的是,您仍然可以使用if-else样式的表达式:
正确答案是:不要再想抓住^{} 。
如果字符串是有效的json,则示例Python脚本返回布尔值:
相关问题 更多 >
编程相关推荐