您好,這是我的第一個 stackoverflow 問題,請耐心等待。
我的 JSON 檔案如下所示:
{"users":
[
{"name": "John Smith",
"phone_num":" 104484932"
},
{"name": "Linda Ray",
"phone_num": " 194387282"
}
]
}
當給出輸入時,腳本應該在這個字典串列中查找名稱并回傳電話號碼,我嘗試了很多資源,它看起來也可能是這個問題的副本。
不是,感謝您提前提供幫助。
uj5u.com熱心網友回復:
將 json 檔案加載到 python dict 中,然后遍歷users串列。
def myfunction(target_name):
with open('file.json') as f:
data = json.load(f)
for user in data['users']:
if user['name'] == target_name:
return user['phone_num']
uj5u.com熱心網友回復:
你可以用一種簡單的方式來做
json = {"users":
[
{"name": "John Smith",
"phone_num":" 104484932"
},
{"name": "Linda Ray",
"phone_num": " 194387282"
}
]
}
inp = input('Name: ')
print([i['phone_num'] for i in json['users'] if i['name'] == inp][0])
告訴我它是否不起作用...
uj5u.com熱心網友回復:
我們無權訪問您的代碼,因此不確定您采用的是哪種方法。假設這是簡單的準系統。
如果檔案是 json,則需要讀入它,這將要求我們匯入json庫。
import json
這個問題意味著我們直接從用戶那里獲得輸入,因此我們可以使用該input()函式來收集該資料。在這里,我們提供了一個提示,該提示將在腳本運行時顯示在螢屏上。
username = input("Please supply a name: ")
從那里,我們讀json入作為 Python 字典讀入的檔案。由于它是一個字典 (Python dict()),我們可以深入到它來獲取我們關心的資料,具體查詢keys以查看關聯的values.
當我們open()檔案和我選擇將打開的檔案稱為fin. 然后我們提取存盤在users鍵下的內容(該值恰好是一個list人)。
with open('filename.json') as fin:
book = json.load(fin)
users = data['users']
然后我們決議用戶串列中的每個用戶并檢查與username之前輸入的匹配。當它找到匹配項時,它會列印相應的電話號碼。
for user in users:
if user['name'] == username:
print(user['phone_num'])
整個腳本看起來像這樣:
import json
username = input("Please supply a name: ")
with open('filename.json') as fin:
book = json.load(fin)
users = data['users']
for user in users:
if user['name'] == username:
print(user['phone_num'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/351613.html
上一篇:選擇json陣列包含特定元素的行
