0

我正在尝试弄清楚如何使用以下内容加载名为 foo.json 的文件:

[
    {
        "bar1":  "foobar1-1",
        "bar2":  "foobar1-2",
        "bar3":  "foobar1-3"
    },
    {
        "bar1":  "foobar2-1",
        "bar2":  "foobar2-2",
        "bar3":  "foobar2-3"
    }
]

我试过的代码:

 with open('foo.json') as data_file:    
    print(data_file)
    data = json.load(data_file)
    print(data)

我所看到的使用 json.load 解析 json 的所有内容似乎都适用于字典内容,但这个 json 表示对象数组或字典数组。Json.load 似乎甚至不适用于字典数组。也许我需要为此使用不同的 json 解析库。任何帮助表示赞赏。

4

2 回答 2

1

哇这很尴尬。我刚刚从这篇文章中复制并粘贴了我的代码以仔细检查它并且它有效。我检查了新文件,发现它是 ASCII。我有 2 天问题的原始文件是 UTF-16。我将 UTF-16 转换为 ASCII 并且 json.load 有效!所以这是文件类型的问题。我想我只需要弄清楚如何让 json.load 来理解 UTF-16 文件!

于 2017-08-02T22:18:43.240 回答
0

json文件无效,请删除每个字典中的最后一个逗号 (',')。之后它将正常工作:)

[
    {
        "bar1":  "foobar1-1",
        "bar2":  "foobar1-2",
        "bar3":  "foobar1-3"
    },
    {
        "bar1":  "foobar2-1",
        "bar2":  "foobar2-2",
        "bar3":  "foobar2-3"
    }
]
于 2017-08-02T21:54:46.397 回答