PythonでHTTP応答からデータを抽出するにはどうすればよいですか?

DevLeo

yahooのオートコンプリートを使おうとしていますが、それを行うためのリンクが見つかりました。これを行うために、Pythonでrequestを使用しています。正しいURLを指定し、「。get」を実行した後、応答を受け取ります。どの種類のデータが応答であるかわかりません。それはデータ、配列、JSONとは何ですか、そしてPythonのデータの種類を理解する方法ですか?この複雑な配列から単一のデータを推定するにはどうすればよいですか?たとえば、タグ「exchange」:「MIL」の後にデータを抽出する必要があります。MIL「shortname」:「MEDIOBANCA」を取得する必要があります。Mediobancaが必要です。これを行うにはどうすればよいですか。

r = requests.get(apiurl)
body=r.text

応答:

 {"explains":[],"count":6,"quotes":[{"exchange":"MIL","shortname":"MEDIOBANCA","quoteType":"EQUITY","symbol":"MB.MI","index":"quotes","score":20129.0,"typeDisp":"Equity","longname":"Mediobanca Banca di Credito Finanziario S.p.A.","isYahooFinance":true},{"exchange":"PNK","shortname":"MEDIOBANCA DI CREDITO FINANZ SP","quoteType":"EQUITY","symbol":"MDIBY","index":"quotes","score":20020.0,"typeDisp":"Equity","longname":"Mediobanca Banca di Credito Finanziario S.p.A.","isYahooFinance":true},{"exchange":"FRA","shortname":"MEDIOBCA  EO 0,50","quoteType":"EQUITY","symbol":"ME9.F","index":"quotes","score":20011.0,"typeDisp":"Equity","longname":"Mediobanca Banca di Credito Finanziario S.p.A.","isYahooFinance":true},{"exchange":"VIE","shortname":"MEDIOBANCA SPA","quoteType":"EQUITY","symbol":"MB.VI","index":"quotes","score":20001.0,"typeDisp":"Equity","longname":"Mediobanca Banca di Credito Finanziario S.p.A.","isYahooFinance":true},{"exchange":"IOB","shortname":"MEDIOBANCA BANCA DI CREDITO FIN","quoteType":"EQUITY","symbol":"0HBF.IL","index":"quotes","score":20001.0,"typeDisp":"Equity","isYahooFinance":true},{"exchange":"STU","shortname":"MEDIOBANCA - BCA CRED.FIN. SPAA","quoteType":"EQUITY","symbol":"ME9.SG","index":"quotes","score":20001.0,"typeDisp":"Equity","isYahooFinance":true}],"news":[],"nav":[],"lists":[],"researchReports":[],"totalTime":19,"timeTakenForQuotes":411,"timeTakenForNews":700,"timeTakenForAlgowatchlist":400,"timeTakenForPredefinedScreener":400,"timeTakenForCrunchbase":0,"timeTakenForNav":400,"timeTakenForResearchReports":0}

更新:

    list_a = ["mediob"]
list_b = [" ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "l", "m", "n", "o", "p", "q", "r", "s", "t", "v", "z",
           "ü", "ä", "ö", "y", "w", "x"] 
list_c = [f"{i} {j}" for i in list_a for j in list_b]
               
for x in list_c:
    apiurl = "https://query1.finance.yahoo.com/v1/finance/search?q="+x+"&quotesCount=6&quotesQueryId=tss_match_phrase_query&multiQuoteQueryId=multi_quote_single_token_query&enableNavLinks=true&enableEnhancedTrivialQuery=true" 
    r = requests.get(apiurl)
    data = r.json()
    shortname = data["quotes"][0]["shortname"]
    print(shortname)

それが与えるはIndexErrorを:リストインデックスを範囲外

ゴサリア
 import requests

list_a = ["mediob"]
list_b = [" ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "l", "m", "n", "o", "p", "q", "r", "s", "t", "v", "z",
           "ü", "ä", "ö", "y", "w", "x"] 
list_c = [f"{i} {j}" for i in list_a for j in list_b]
for x in list_c:
    apiurl = "https://query1.finance.yahoo.com/v1/finance/search?q="+x+"&quotesCount=6&quotesQueryId=tss_match_phrase_query&multiQuoteQueryId=multi_quote_single_token_query&enableNavLinks=true&enableEnhancedTrivialQuery=true" 
    r = requests.get(apiurl)
    data = r.json()
    if data['quotes']:
        print(data["quotes"][0]["shortname"])

私はあなたが提供したサンプル応答を取り、あなたがしていることをシミュレートするためにモックAPIを作成しました。返される応答は基本的にjson応答です。

また、上記を試したところ、エラーが発生しているようです。その理由は、一部のリストが空の場合、印刷を試みる前にリストが空でないことを確認する必要があるためですprint(data["quotes"][0]["shortname"])。したがって、ifステートメントがあります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

応答(ソケット)からデータを抽出するにはどうすればよいですか?

分類Dev

AngularのJSON応答からformArrayにデータを追加するにはどうすればよいですか?

分類Dev

Ajax 応答から小枝にデータを設定するにはどうすればよいですか

分類Dev

Laravelに応答HTTPデータを追加するにはどうすればよいですか?

分類Dev

Reactのpromiseから応答データを取得するにはどうすればよいですか?

分類Dev

Combine + Alamofire Error応答からデータ値を取得するにはどうすればよいですか?

分類Dev

JSON応答から特定のデータを削除するにはどうすればよいですか?

分類Dev

コールバックURLへの応答からデータを抽出するにはどうすればよいですか?

分類Dev

APIからのXML応答からURIを抽出するにはどうすればよいですか

分類Dev

空手でjson配列から応答を抽出するにはどうすればよいですか?

分類Dev

JSON応答からマップを抽出するにはどうすればよいですか

分類Dev

Scrapyの応答からアイテムIDを抽出するにはどうすればよいですか?

分類Dev

golangのhttp応答[Set-Cookie]から特定のヘッダーを抽出するにはどうすればよいですか?

分類Dev

Ajax応答データを別の形式で使用するにはどうすればよいですか?

分類Dev

角度2で複雑なjson応答データを取得するにはどうすればよいですか?

分類Dev

応答データ全体をnginxerror.logに保存するにはどうすればよいですか?

分類Dev

PHPでJSONからデータを抽出するにはどうすればよいですか?

分類Dev

応答の返されたデータをチェックするhttp要求のテストを作成するにはどうすればよいですか?

分類Dev

Laravel 5でHTTP応答からカスタムヘッダーを取得するにはどうすればよいですか?

分類Dev

PDFから画像とそのメタデータを抽出するにはどうすればよいですか?

分類Dev

画像からデータを正確に抽出するにはどうすればよいですか?PyTesseractの使用

分類Dev

PHPでJSONサーバーの応答からデータを取得するにはどうすればよいですか?

分類Dev

HttpClientを使用しているときに、監視可能な応答からトークンを抽出するにはどうすればよいですか?

分類Dev

node-fetchを使用してAPIからデータと応答ステータスを取得するにはどうすればよいですか?

分類Dev

反応でredux状態からデータをプルするにはどうすればよいですか?

分類Dev

AFJSONRequestOperationのコールバックでNSHTTPURLResponseから応答データを取得するにはどうすればよいですか?

分類Dev

AngularJSがデータベースから応答を取得した後、HTMLページをロードするにはどうすればよいですか?

分類Dev

`onclick`属性値の括弧内からデータを抽出するにはどうすればよいですか?

分類Dev

文字列からデータを抽出するにはどうすればよいですか?

Related 関連記事

  1. 1

    応答(ソケット)からデータを抽出するにはどうすればよいですか?

  2. 2

    AngularのJSON応答からformArrayにデータを追加するにはどうすればよいですか?

  3. 3

    Ajax 応答から小枝にデータを設定するにはどうすればよいですか

  4. 4

    Laravelに応答HTTPデータを追加するにはどうすればよいですか?

  5. 5

    Reactのpromiseから応答データを取得するにはどうすればよいですか?

  6. 6

    Combine + Alamofire Error応答からデータ値を取得するにはどうすればよいですか?

  7. 7

    JSON応答から特定のデータを削除するにはどうすればよいですか?

  8. 8

    コールバックURLへの応答からデータを抽出するにはどうすればよいですか?

  9. 9

    APIからのXML応答からURIを抽出するにはどうすればよいですか

  10. 10

    空手でjson配列から応答を抽出するにはどうすればよいですか?

  11. 11

    JSON応答からマップを抽出するにはどうすればよいですか

  12. 12

    Scrapyの応答からアイテムIDを抽出するにはどうすればよいですか?

  13. 13

    golangのhttp応答[Set-Cookie]から特定のヘッダーを抽出するにはどうすればよいですか?

  14. 14

    Ajax応答データを別の形式で使用するにはどうすればよいですか?

  15. 15

    角度2で複雑なjson応答データを取得するにはどうすればよいですか?

  16. 16

    応答データ全体をnginxerror.logに保存するにはどうすればよいですか?

  17. 17

    PHPでJSONからデータを抽出するにはどうすればよいですか?

  18. 18

    応答の返されたデータをチェックするhttp要求のテストを作成するにはどうすればよいですか?

  19. 19

    Laravel 5でHTTP応答からカスタムヘッダーを取得するにはどうすればよいですか?

  20. 20

    PDFから画像とそのメタデータを抽出するにはどうすればよいですか?

  21. 21

    画像からデータを正確に抽出するにはどうすればよいですか?PyTesseractの使用

  22. 22

    PHPでJSONサーバーの応答からデータを取得するにはどうすればよいですか?

  23. 23

    HttpClientを使用しているときに、監視可能な応答からトークンを抽出するにはどうすればよいですか?

  24. 24

    node-fetchを使用してAPIからデータと応答ステータスを取得するにはどうすればよいですか?

  25. 25

    反応でredux状態からデータをプルするにはどうすればよいですか?

  26. 26

    AFJSONRequestOperationのコールバックでNSHTTPURLResponseから応答データを取得するにはどうすればよいですか?

  27. 27

    AngularJSがデータベースから応答を取得した後、HTMLページをロードするにはどうすればよいですか?

  28. 28

    `onclick`属性値の括弧内からデータを抽出するにはどうすればよいですか?

  29. 29

    文字列からデータを抽出するにはどうすればよいですか?

ホットタグ

アーカイブ