Python JSON加载/解码对象列表
我正在尝试找出如何加载名为foo.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" } ] 我尝试过的代码
[
{
"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,但我还是添加了它,它成功了!非常感谢。