[英]Get values with the key names from json object
我正在嘗試從 python 列表對象的特定列中檢索值。 這是來自此處的日志分析 API 的響應格式 - https://dev.loganalytics.io/documentation/Using-the-API/ResponseFormat
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"tables": [
{
"name": "PrimaryResult",
"columns": [
{
"name": "Category",
"type": "string"
},
{
"name": "count_",
"type": "long"
}
],
"rows": [
[
"Administrative",
20839
],
[
"Recommendation",
122
],
[
"Alert",
64
],
[
"ServiceHealth",
11
]
]
}
]
}
有數百列,我想讀取特定的列和行值。 為此,我最初嘗試為例如“類別”的列查找索引並從行中檢索所有值。 這是我到目前為止所做的。
result=requests.get(url, params=params, headers=headers, verify=False)
index_category = (result.json()['tables'][0]['columns']).index('Category')
結果包含上述格式的數據。 我收到以下錯誤。 我錯過了什么?
ValueError: 'Category' is not in list
我希望能夠從循環中的行數組中檢索類別值。 我也在下面的循環中完成了這個,我能夠得到我想要的但想確認是否有更好的方法來做到這一點。 此外,我在讀取行值之前首先檢索列索引,因為我懷疑盲目讀取具有顯式索引值的行值容易出錯,尤其是當列的順序發生變化時。
for column in range(0,columns):
if ((result.json()['tables'][0]['columns'][column]['name']) == 'Category'):
index_category = column
for row in range(0,rows):
print(result.json()['tables'][0]['rows'][row][index_category])
json_data = results.json()
for index, columns in enumerate(json_data['tables'][0]['columns']):
if columns['name'] == 'Category':
category_index = index
break
category_list = []
for row in json_data['tables'][0]['rows']:
category_list.append(row[category_index])
順便說一句,還沒有測試過。
您還可以重構我們使用 filter 函數查找類別索引的第一個循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.