无论json输入如何,loads()始终抛出valueerror
我的一个测试用例尝试使用以下方法验证一些json:无论json输入如何,loads()始终抛出valueerror,json,Json,我的一个测试用例尝试使用以下方法验证一些json: CONFIG = '../reconnoitre/config.json' print(is_json(CONFIG)) # return true is json is valid or false if unable to load def is_json(json_file): try: json_object = json.loads(json_file) except ValueError: return
CONFIG = '../reconnoitre/config.json'
print(is_json(CONFIG))
# return true is json is valid or false if unable to load
def is_json(json_file):
try:
json_object = json.loads(json_file)
except ValueError:
return False
return True
不管我传递了什么JSON,例程总是返回false,例如:
{
"test": "test"
}
仍将返回一个假值。考虑到函数的简单性,是否有更好的方法验证文件是否为有效的json?
json.loads
将尝试将其参数作为json进行计算,但您给了它文件名,这当然不是有效的json。改为将内容加载到字符串中,并将其传递给json.loads
,或者更好地使用json.loads
在带有open(…)块的中。尝试json.loads()
或带有多个数据的json。发生了什么事?那。。。这很有道理。不知道为什么我认为它会为我打开文件,深夜编码!有趣的是,这也不起作用,尝试了json\u object=json.load(str(open(json\u file,'r'))
try:将open(json\u file,“r”)作为f:json\u object=json.load(f)
作为f:json\u str=f.readall()
然后json\u str
传递给加载方法。啊!那是票。谢谢你!