如何使用json内容读取ascii文件:ValueError

时间:2014-06-06 06:42:19

标签: python json

我尝试使用以下函数读取此json content的ascii文件:

{ "directory": { "name": "/wiki", "files": { "file": [ { "name": "/wiki/a.txt", "digest": "97d37a2ff85fbe35e1bf8ad38934d8fb518a6a3fbeb9b0b9305ce98e992f9dd2 " },
    { "name": "/wiki/d.txt", "digest": "ef91ee1257c3faa49f86f343cfec66010e5810e99db9f42e88774f90cd5b95d9 " },] } } }


def readJsonFile(path):
    with open(path) as json_file:
        json_data = json.load(json_file)

    return json_data

我得到的error没有JSON对象可以被解码:

ValueError: No JSON object could be decoded

我尝试使用json.loads并收到错误:

TypeError: expected string or buffer

我使用的是正确的功能吗?

2 个答案:

答案 0 :(得分:1)

数据不是有效的json(它有一个尾随,)。

但它是一个有效的python文字;您可以改为使用ast.literal_eval

import ast

def readJsonFile(path):
    with open(path) as json_file:
        return ast.literal_eval(json_file.read())

答案 1 :(得分:0)

您的json字符串错误,由jsonint验证:

enter image description here