Python JSON加载/解码对象列表

时间:2017-08-02 21:47:22

标签: python json parsing anaconda python-collections

我正在尝试弄清楚如何使用以下内容加载名为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解析库。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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