PythonコードがAPIで返されたデータを取得できないという問題のトラブルシューティングと解決
この記事ではrequests
ライブラリを使用してip-api.com
APIを呼び出すときに空の値を返すPythonコードケースを分析し、ソリューションを提供します。
問題の説明
次のコードは、POSTリクエストを使用してip-api.com
のバッチIP情報を取得しようとしますが、常にnull値を返します。
json、リクエスト、リクエストをインポートします ip = [ 「49.104.25.257」、 「39.115.131.116」 ] api = "http://ip-api.com/batch?fields=58898?lang=zh_cn" ヘッダー= { 「ユーザーエージェント」: "Mozilla/5.0(Windows NT 10.0; Win64; X64)AppleWebkit/537.36(Khtml、geckoのように)Chrome/119.0.0.0 Safari/537.36 EDG/119.0.0.0"、 「コンテンツタイプ」:「アプリケーション/JSON」 } ip = json.dumps(ip、sures_ascii = false、indent = 2) 印刷(IP) resp = requests.post(url = api、data = ip、headers = headers) 印刷(resp.status_code) print(resp.text) resp.close()
このAPIは、1分あたり45のリクエストの制限がある無料版で、POSTリクエストを使用して、 fields=58898
使用してリターンフィールドを指定します。 API WebサイトでIPを直接照会することに問題はありませんが、コードは常にnull値を返し、 requests
ライブラリはエラーを報告しません。
問題の分析とソリューション
コードとAPIのドキュメントを慎重に確認した後、問題はURLのクエリパラメーター設定であることがわかりました。元のコードでは、URLは次のとおりです。
api = "http://ip-api.com/batch?fields=58898?lang=zh_cn"
&
接続は、継続的な使用ではなく、複数のクエリパラメーター間で使用する必要があります?
正しいURLは次のとおりです。
API = "http://ip-api.com/batch?fields=58898&lang=Zh_cn"
さらに、中国のデータが返されることを確認するために、 lang
パラメーターをzh_CN
に設定することをお勧めします。同時に、HTTPヘッダーのUser-Agent
とcontent-type
イニシャルが大文字になって標準の命名法を使用する必要があります。
これが修正された完全なコードです:
リクエストをインポートします JSONをインポートします ip = [ 「49.104.25.257」、 「39.115.131.116」 ] API = "http://ip-api.com/batch?fields=58898&lang=Zh_cn" ヘッダー= { 「ユーザーエージェント」: "Mozilla/5.0(Windows NT 10.0; Win64; X64)AppleWebkit/537.36(Khtml、geckoのように)Chrome/119.0.0.0 Safari/537.36 EDG/119.0.0.0"、 「コンテンツタイプ」:「アプリケーション/JSON」 } ip = json.dumps(ip、sures_ascii = false、indent = 2) 印刷(IP) resp = requests.post(url = api、data = ip、headers = headers) 印刷(resp.status_code) print(resp.text) resp.close()
URLとHTTPヘッダーを変更することにより、API戻りデータを正常に取得できます。この例は、API呼び出しにおける微妙な構文エラーの潜在的な障害を示しており、URLとパラメーターをダブルチェックすることの重要性を強調しています。
以上がなぜ私のコードはAPIによってデータを返しているのですか?この問題を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonListsareimplementedasdynamicarrays、notlinkedlists.1)they restorediguourmemoryblocks、それはパフォーマンスに影響を与えることに影響を与えます

pythonoffersfourmainmethodstoremoveelements fromalist:1)removesthefirstoccurrenceofavalue、2)pop(index(index(index)removes regvess returnsaspecifiedindex、3)delstatementremoveselementselementsbyindexorseLice、および4)clear()

toresolvea "許可denided" errors whenrunningascript、sofflowthesesteps:1)checkandadaddadaddadadaddaddadadadaddadaddadaddadaddaddaddaddaddadaddadaddaddaddaddadaddaddaddadadaddadaddadaddadadisionsisingmod xmyscript.shtomakeitexexutable.2)

ArraySarecrucialinpythonimageprocessing asheyenable efficientmanipulation analysisofimagedata.1)画像anverttonumpyArrays、with grayscaleimagesasas2darraysandcolorimagesas.

ArsareSareBetterElement-WiseOperationsduetof of ActassandoptimizedImplementations.1)ArrayshaveContigUousMoryFordiRectAccess.2)ListSareFlexibleButSlowerDueTopotentialDynamicresizizizizing.3)

Numpyの配列全体の数学的操作は、ベクトル化された操作を通じて効率的に実装できます。 1)追加(arr 2)などの簡単な演算子を使用して、配列で操作を実行します。 2)Numpyは、基礎となるC言語ライブラリを使用して、コンピューティング速度を向上させます。 3)乗算、分割、指数などの複雑な操作を実行できます。 4)放送操作に注意して、配列の形状が互換性があることを確認します。 5)np.sum()などのnumpy関数を使用すると、パフォーマンスが大幅に向上する可能性があります。

Pythonでは、要素をリストに挿入するための2つの主要な方法があります。1)挿入(インデックス、値)メソッドを使用して、指定されたインデックスに要素を挿入できますが、大きなリストの先頭に挿入することは非効率的です。 2)Append(Value)メソッドを使用して、リストの最後に要素を追加します。これは非常に効率的です。大規模なリストの場合、append()を使用するか、dequeまたはnumpy配列を使用してパフォーマンスを最適化することを検討することをお勧めします。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール
