我的一个测试用例是尝试使用以下方法验证某些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 False
return True
无论我通过什么JSON,例程总是返回false,例如:
{
"test": "test"
}
仍然会返回false值。鉴于函数的简单性 - 有没有更好的方法可以验证文件是否有效json?
答案 0 :(得分:1)
json.loads
将尝试将其参数评估为json,但是您给它了文件名,当然这不是有效的json。将内容加载到字符串中,然后将其传递给json.loads
,甚至更好,在json.load
块内使用with open(...)
。