python - 在python中解析JSON对象
问题描述
我正在尝试对我们的 Wi-Fi 控制器进行一些 (JSON) API 调用并获取一些信息。当我以某种方式将 JSON 响应存储到 adict
时,它只看到几个键,即:
dict_keys(['totalCount', 'hasMore', 'firstIndex', 'list'])
和项目:
dict_items([('totalCount', 32), ('hasMore', False), ('firstIndex', 0),
('list', [{'id': 'ehgfhafgf', 'name': 'fasdfsd
xxxx'}, {'id': 'efasfsfas',
'name': 'zxcva'}])])
我删除了很多项目,所以它会有些意义,否则它会是太多的文字。
因此,您可以看到dict
将错误的变量识别为键。因为作为键我需要id
和name
. 有没有办法手动分配dict
键或模拟这个的技巧?
我的一段代码:
#Method that retrieves all zones
def getZones():
r = requests.get("url..", verify=False, cookies=cookie)
print(type(r.json()))
jsonResponse = r.json()
print("items: \n")
print(jsonResponse.items())
print("\nkeys: \n")
print(jsonResponse.keys())
print(jsonResponse.get('id'))
return r
出于调试原因进行了大量打印。
解决方案
如果您显示了实际的 JSON 响应,您的问题会更清楚。
但是,从您发布的内容可以清楚地看出,它id
确实name
不是顶级键,而是分配给键的列表中嵌套字典内的list
键。所以你应该从那里得到它们:
for item in jsonResponse['list']:
print(item['id'], item['name'])
推荐阅读
- react-native - 开发服务器返回错误码 504 react native emulator
- java - 为什么在 R 中安装软件包时出现错误?
- postgresql - 如何在 SQL 查询中添加时间和时间间隔
- imagemagick - 我正在使用 shell 使用 imagemagick 生成图像,但无法理解生成的重复图像。请指教
- javascript - 如何获取 Chrome 的画中画元素的拖动坐标?
- python - 为什么此代码会出错:“缩进错误:未缩进与任何外部缩进都不匹配”
- angular - 我想在使用 switchMap 抛出错误时捕获错误
- php - 使用 PHP 后台任务获取 HTTP 1.1 错误 400
- url - 将 Yii2 GridView 列格式化为 URL
- ios - 选择按钮时如何触发键盘打开并启用听写