无论json输入如何,json.loads()总是抛出一个valueerror

时间:2017-09-02 12:20:35

标签: 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 False
  return True        

无论我通过什么JSON,例程总是返回false,例如:

{
  "test": "test"
}

仍然会返回false值。鉴于函数的简单性 - 有没有更好的方法可以验证文件是否有效json?

1 个答案:

答案 0 :(得分:1)

json.loads将尝试将其参数评估为json,但是您给它了文件名,当然这不是有效的json。将内容加载到字符串中,然后将其传递给json.loads,甚至更好,在json.load块内使用with open(...)