1. ホーム
  2. パイソン

[解決済み】pythonでRESTfulなAPIにリクエストする方法

2022-04-03 07:55:22

質問

私は、コンテンツのコーパスをインデックス化するために、EC2インスタンス上のElasticsearchの実装を使用して公開したRESTful APIを持っています。ターミナル(MacOSX)から以下を実行することで、検索をクエリすることができます。

curl -XGET 'http://ES_search_demo.com/document/record/_search?pretty=true' -d '{
  "query": {
    "bool": {
      "must": [
        {
          "text": {
            "record.document": "SOME_JOURNAL"
          }
        },
        {
          "text": {
            "record.articleTitle": "farmers"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 50,
  "sort": [],
  "facets": {}
}'

上記をAPIリクエストに変換するには python/requests または python/urllib2 (どちらを選ぶか迷っています。今までurllib2を使っていましたが、requestsの方が良いと聞いています...)? ヘッダーとして渡すか、そうでなければ?

解決方法は?

使用方法 要望 :

import requests
url = 'http://ES_search_demo.com/document/record/_search?pretty=true'
data = '''{
  "query": {
    "bool": {
      "must": [
        {
          "text": {
            "record.document": "SOME_JOURNAL"
          }
        },
        {
          "text": {
            "record.articleTitle": "farmers"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  },
  "from": 0,
  "size": 50,
  "sort": [],
  "facets": {}
}'''
response = requests.post(url, data=data)

APIがどのようなレスポンスを返すかによって、次のようになります。 response.text または response.json() (または、おそらく検査 response.status_code クイックスタートドキュメントをご覧ください。 これ 特に 本節 .