我正在嘗試檢索 JSON 檔案的值,但我不斷收到錯誤訊息
/home/pi/Desktop/asd.py:5: SyntaxWarning: list indices must be integers or slices, not str; perhaps you missed a comma?
print(str(y[['tunnels']['public_url']]))
Traceback (most recent call last):
File "/home/pi/Desktop/asd.py", line 5, in <module>
print(str(y[['tunnels']['public_url']]))
TypeError: list indices must be integers or slices, not str
這是我的代碼:
import json
import requests
y = requests.get('http://localhost:4040/api/tunnels').content
x = json.loads(y)
print(str(y[['tunnels']['public_url']]))
這是來自的 JSON 檔案http://localhost:4040/api/tunnels:
{
"tunnels": [
{
"name": "command_line",
"uri": "/api/tunnels/command_line",
"public_url": "tcp://6.tcp.ngrok.io:18592",
"proto": "tcp",
"config": {
"addr": "localhost:25565",
"inspect": false
},
"metrics": {
"conns": {
"count": 166,
"gauge": 0,
"rate1": 0.017125393007699625,
"rate5": 0.027720847107677204,
"rate15": 0.02187693220653439,
"p50": 1971501053.5,
"p90": 11939627275.9,
"p95": 11991631962.25,
"p99": 19816396509.55
},
"http": {
"count": 0,
"rate1": 0,
"rate5": 0,
"rate15": 0,
"p50": 0,
"p90": 0,
"p95": 0,
"p99": 0
}
}
}
],
"uri": "/api/tunnels"
}
無論我多么努力,我似乎??都無法找到讓這段代碼作業的方法......
uj5u.com熱心網友回復:
print(str(y[['tunnels']['public_url']]))
有一對不必要的括號['tunnels']['public_url']導致它被評估為 y 的一部分。這就是導致例外的原因,盡管洗掉括號無濟于事,因為 y 是一個Response物件。
嘗試以下操作:
import requests
resp = requests.get('http://localhost:4040/api/tunnels')
resp_json = resp.json()
print(resp_json['tunnels']['public_url'])
uj5u.com熱心網友回復:
requests Python 模塊負責檢索 JSON 資料并對其進行解碼。
import requests
r = requests.get('http://localhost:4040/api/tunnels')
r.json()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/438696.html
標籤:Python json python-3.x
