[英]Getting values from json array using an array of object and keys in Python
我是Python的新手,我正在嘗試編寫腳本以通過動態傳遞鍵並從csv中讀取鍵來提取json鍵。 首先,這是我的第一篇文章,對於我的問題是平庸的,並且代碼不完整,我很抱歉,但這只是理解問題的偽代碼(我希望不要使其復雜化...)
以下部分代碼從三個鍵(組,用戶和ID或用戶名)中檢索值,但我想從csv加載對象和鍵以使其具有動力學特征。
輸入json
{
"fullname": "The Full Name",
"group": {
"user": {
"id": 1,
"username": "John Doe"
},
"location": {
"x": "1234567",
"y": "9876543"
}
},
"color": {
"code": "ffffff",
"type" : "plastic"
}
}
Python代碼...
...
url = urlopen(jsonFile)
data = json.loads(url.read())
id = (data["group"]["user"]["id"])
username = (data["group"]["user"]["username"])
...
File.csv加載到數組中。 每行包含一個或多個鍵。
fullname;
group,user,id;
group,user,username;
group,location,x;
group,location,y;
color,code;
問題是:我可以使用包含要提取的對象或鍵的變量嗎? 我如何指定在keys數組中有多少個key才能僅使用一行將它們放入data([] [] ...)?
像這樣的偽代碼:
...
url = urlopen(jsonFile)
data = json.loads(url.read())
...
keys = line.split(',')
...
# using keys[] to identify the objects and keys
value = (data[keys[0]][keys[1]][keys[2]])
...
但是,行value = (data[keys[0]][keys[1]][keys[2]])
應該具有從csv讀取的每行的確切密鑰數。 還是我必須像這樣做出一些“如果”行?:
...
if len(keys) == 3:
value = (data[keys[0]][keys[1]][keys[2]])
if len(keys) == 2:
value = (data[keys[0]][keys[1]])
...
非常感謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.