json.decoder.JSONDecodeErrorのトラブルシューティングと解決:期待値:行1列1(文字0)
Troubleshoot Solve Json
Pythonクローラーは、起動時に次のコードでこのエラーを検出しました。
(Pythonバージョン、3.7)
url = https://www.douban.com/j/search_photo?q=Panda&limit=20&start=0 html = requests.get(url).text response = json.loads(html)
実行中のエラー:
json.decoder.JSONDecodeError:期待値:行1列1(文字0)
デバッグを開始します
- 1最初にhtmlがjsonであるかどうかを確認します
print(html)
結果が空の場合は、エラーの報告を回避するために判断を追加できます
if html : response = json.loads(html)
ただし、エラーを回避するだけでなく、データを取得するために、ここにインターフェイスに直接アクセスするためのデータがあります
- 2リクエストのコードコードが結果を得る
html = requests.get(url) print(html.status_code)
status_codeは418で、通常のシナリオのコードコードは200である必要があります
- 3 requests.get()status_code418の問題を解決します
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} url = https://www.douban.com/j/search_photo?q=Panda&limit=20&start=0 html = requests.get(url, headers=headers) print(html.status_code)
現時点では、リクエストは正常であり、返信を受け取ることができます
- 4比較的エレガントな処理-例外をキャッチする
try: response = json.loads(html.text) except Exception as ex: print(ex)
例外がキャプチャされて印刷された後は、デバッグが簡単になります
これまでのところ、json.decoder.JSONDecodeError:期待値:行1列1(文字0)の問題は解決されています