Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python JSON加载/解码对象列表_Python_Json_Parsing_Anaconda_Python Collections - Fatal编程技术网

Python JSON加载/解码对象列表

Python JSON加载/解码对象列表,python,json,parsing,anaconda,python-collections,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" } ] 我尝试过的代码

我正在尝试找出如何加载名为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表示一个对象数组或字典数组。load似乎甚至不能与一系列字典一起使用。也许我需要使用不同的json解析库来实现这一点。非常感谢您的帮助。

json文件无效,请删除每个词汇中的最后一个逗号“”。之后,它将正常工作:

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

哇,这太尴尬了。我只是复制并粘贴了这篇文章中的代码,对其进行了双重检查,结果成功了。我检查了新文件,发现它是ASCII码。我两天来遇到问题的原始文件是UTF-16。我将UTF-16转换为ASCII,json.load工作正常!所以这是文件类型的问题。我想我必须弄清楚如何获取json.load来理解UTF-16文件

你遇到了什么问题?我不知道你所说的json.load中的所有内容是什么意思,似乎都是针对字典内容的。。。但是json模块可以很好地处理任何有效的json。问题是,由于额外的逗号,这不是有效的json。尝试复制粘贴到并单击验证。很抱歉,我试图为这篇文章创建json数据的简化版本,但我不小心留下了逗号。我在帖子里把它们删掉了。好吧,但现在这个加载很好。再说一遍,你到底遇到了什么问题?您只是含糊其辞地声明了Json.load似乎甚至不适用于一系列字典。但这绝对不是真的。事实上,我已经将您的示例数据放入了一个文件中,并使用了您的精确代码,它按预期运行……打开'which.json',encoding='utf-16'或'utf-16-le'或'utf-16-be',但您应该始终知道您的编码。如果你真的在你的帖子中包含了这个错误,这可能是一个线索,但大家都只能猜测了。对不起,这是我的第一个python程序。我几乎不知道如何使用Visual Studio 2017 IDE,这个错误似乎是如此不祥,以至于我认为它没有任何价值,加上DOS弹出窗口是复制和粘贴的痛苦。。顺便说一句,IDE在显示选项时并没有将编码显示为参数,因为我先键入逗号,然后键入e,但我还是添加了它,它成功了!非常感谢。