如何检查json对象是否为数组

2024-06-25 23:17:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我在java向python发送json arraylist obect时遇到了这个问题

[{'firstObject' : 'firstVal'}]

但是当我用python接收它时,我得到的值是

{'listName':{'firstObject':'firstVal'}}

当我像这样传递数组中的多个对象时:

[{'firstObject' : 'firstVal'},{'secondObject' : 'secondVal'}]

我从python端接收json

{'listName':[{'firstObject':'firstVal'},{'secondObject' : 'secondVal'}]}    

我不明白为什么会这样,有谁能帮我把第一个case变成array对象,或者帮我找出json变量是否是array类型。


Tags: 对象json类型数组javaarraycase新手
2条回答

Python中的json模块不会更改结构:

assert type(json.loads('[{"firstObject": "firstVal"}]')) == list

如果您看到{'listName':{'firstObject':'firstVal'}},那么某些东西(在java或python中(在您的应用程序代码中))会更改输出/输入。

注意:将'listName'值解压缩为shown in @Fawers' answer很容易,但不应该这样做。修正产生错误值的上游代码。

无论何时使用json模块中的load(或loads)函数,都会得到dictlist对象。要确保获得的是一个列表而不是包含listName的dict,可以执行以下操作:

import json

jsonfile = open(...) # <- your json file
json_obj = json.load(jsonfile)

if isinstance(json_obj, dict) and 'listName' in json_obj:
    json_obj = json_obj['listName']

这应该会给你想要的结果。

相关问题 更多 >