LoginSignup
yasusuzu602
@yasusuzu602 (やす すず)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

HUBSPOTデータをAPIで効率的に取得するpythonコード例を教えていただけませんでしょうか?

解決したいこと

ハブスポット内のデータをAPIキーを使って直接とりだし、業務の自動化をめざします。

pythonコードでデータの取得はできました。
しかしながら、データ取得は1回100件までの取得制限があり、この制限以上の約5000件あるデータを取得するコードが未熟な私にはかけません。まだ始めたばかりでどうしたらいいのか、、、
いまは、続きから手動で一回一回書き換えています。(T_T)
ぜひとも、良い例文を教えていただけましたら幸いです

現状のデータ取得のコード

import requests

import json

info = 'tickets'

url = 'https://api.hubapi.com/crm/v3/objects/' + info API_KEY = '#####APIキー'

querystring = {"limit":"100","archived":"False","after" :"330000000","hapikey":API_KEY}

headers = {'accept': 'application/json'}

res = requests.get(url, headers=headers, params=querystring)

print(res)

print(res.url)

print(type(res))

print(res.status_code)

print(res.text)

その結果得られる内容は

<Response [200]>
https://api.hubapi.com/crm/v3/objects/tickets?limit=100&archived=False&after=330000000&hapikey=#####key#####
<class 'requests.models.Response'>
200
{"results":[{"id":"330034015","properties":{"content":null,"createdate":"2021-03-10T09:59:29.987Z","hs_lastmodifieddate":"2021-03-10T09:59:30.681Z","hs_object_id":"330034015","hs_pipeline":"8646366","hs_pipeline_stage":"8646372","hs_ticket_category":null,"hs_ticket_priority":null,"subject":"連絡事項;\n;・
このようにデータが取れます

取得したデータの最後に

"next":
{"after":"332369253", "link": "https://api.hubapi.com/crm/v3/objects/tickets?archived=False&limit=100&after=332369253" 
と次にこの332369253からデータと取得しなさいいわれているようで・・・・

この"next":"after":"332369253"を抜き出して

そこではじめのquerystringを

querystring = {"limit":"100","archived":"False","after" :"330000000","hapikey":API_KEY} 

自動的に

querystring = {"limit":"100","archived":"False","after" :"332369253","hapikey":API_KEY} に書き換える

未熟な私には、、、、できないのでなんとか例文を教えてほしいのです

教えていただきたいことは、"next":"after":"332369253" からを"332369253"を抜きとる。
そして、querystring = {"limit":"100","archived":"False","after" :"ここに入れる"
"ここに入れる"という技なのです。
そして、次々とデータを取得して”ここに入れる”をループしてデータ5000件を取得したいのです
なんとか例文を教えていただけませんでしょうか?お願いいたします。

0

1Answer

max_lim = 100
while after is not null:
    取得するためのコード
    after = json[next][after]
    total = 今回取得したデータ数
    if total > max_lim:
        break

のような感じでいかがですか。

0

Comments

  1. @yasusuzu602

    Questioner
    ご連絡ありがとうございます
    ためしてみます。

Your answer might help someone💌