我正在嘗試搜索 API,當(dāng)使用請求函數(shù)時,我收到一個錯誤,似乎表明 URL 上沒有 JSON 中的任何內(nèi)容。當(dāng)放入瀏覽器時,它可以工作,并且該函數(shù)在一段類似的代碼中工作。這是我第一次嘗試編碼任何東西,所以我到達(dá)這里是一種努力,但現(xiàn)在我只是卡住了,不確定我的錯誤在哪里?,F(xiàn)在我正在打印 URL,當(dāng)我放入瀏覽器時,我找到了 JSON 代碼,并且該代碼在我為測試而制作的另一個類似程序中工作。import requestsimport timeapi = 'https://api.mojang.com/users/profiles/minecraft/'f = open('Pokemon.txt', 'r')for line in f: url = (api + line) print(url) json_data = requests.get(url).json() Result = (json_data) print(result)在這里,我得到了這個:https://api.mojang.com/users/profiles/minecraft/BulbasaurTraceback (most recent call last): File "C:\Users\Fierce-PC\Desktop\MC Name project\Pokemon.py", line 12, in <module> json_data = requests.get(url).json() File "C:\Users\Fierce-PC\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests\models.py", line 897, in json return complexjson.loads(self.text, **kwargs) File "C:\Users\Fierce-PC\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads return _default_decoder.decode(s) File "C:\Users\Fierce-PC\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\Fierce-PC\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from Nonejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)>>> 如果你點(diǎn)擊它,你可以清楚地看到https://api.mojang.com/users/profiles/minecraft/Bulbasaur工作,它是 JSON 格式,我只是不太明白這個問題。更讓我困惑的是這段代碼有效import urllib.parseimport requestsapi = 'https://api.mojang.com/users/profiles/minecraft/'Name = 'Bulbasaur'url = (api + Name)print(url)json_data = requests.get(url).json()print(json_data)它像我想要的那樣輸出這個,但它不會在查看每個口袋妖怪的循環(huán)中工作{'id': '06e299358e2f44f1ad8c5f859d63973b', 'name': 'Bulbasaur'}抱歉,如果這是一篇構(gòu)建不當(dāng)?shù)奶樱蛘呶疫z漏了一些非常明顯的內(nèi)容。編輯:我編輯了兩個版本的代碼,如下所示: json_data = requests.get(url) print(json_data)對于有效版本第二行的打印,我把它拿回來了<Response [200]>
1 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊
試試這個代碼。它遍歷文件中的行,構(gòu)造 URL,然后嘗試獲取數(shù)據(jù);失敗時,它應(yīng)該打印原因并繼續(xù)下一行。
with open('Pokemon.txt') as fh:
for line in fh:
url = (api + line.strip())
print(url)
conn = requests.get(url)
if not conn.ok:
print("Failure on {}: {}".format(url, conn.reason))
continue
result = conn.json()
print(result)
添加回答
舉報
0/150
提交
取消