0

'我正在尝试从 Hubspot 获取交易数据,我正在尝试在此示例中获取交易 ID 和交易名称以简化问题,但稍后我将使用更多属性。我有以下代码,它为我提供了一组交易 ID 和一组交易名称。我可以做到这一点,而不是多个数组,而是得到以下内容:

{{12345,'deal1'}, {12346,'deal2'}, {12347,'deal3'}}

或类似的东西:

{{'dealId': 12345, 'dealname' : 'deal1'}}

到目前为止,这是我的代码:

deals = []
names = []

def getdeals():
    apikey = "demo"
    url = 'https://api.hubapi.com/deals/v1/deal/paged?hapikey='+apikey+'&properties=dealname&limit=250'
    response = requests.get(url)
    jsonDeals = response.json()

    for deal in jsonDeals['deals']:
       properties = deal['properties']
       deals.append(deal['dealId'])
       names.append(properties['dealname']['value'])
4

3 回答 3

1

您已经拥有 json 中的数据。它只是您想要映射和存储它的方式。

output={}
def getdeals():
    apikey = "demo"
    url = 'https://api.hubapi.com/deals/v1/deal/paged?hapikey='+apikey+'&properties=dealname&limit=250'
    response = requests.get(url)
    jsonDeals = response.json()

    for deal in jsonDeals['deals']:
       properties = deal['properties']
       output.update({deal['dealId']: properties['dealname']['value']})
于 2019-03-19T14:15:19.623 回答
1

这可以使用列表理解来解决:

[{'dealId':deal['dealId'],'dealname':deal['properties']['dealname']['value']} for deal in jsonDeals['deals']]
于 2019-03-19T14:16:13.863 回答
0

AS E.Serra 建议 deal_obj = {'dealname': properties['dealname']['value'], 'dealid':deal['dealId']} 解决了这个问题。

这是更新的代码:

%%time
deals = []

def getdeals():
    apikey = "demo"
    url = 'https://api.hubapi.com/deals/v1/deal/paged?hapikey='+apikey+'&properties=dealname&limit=250'
    response = requests.get(url)
    jsonDeals = response.json()

    for deal in jsonDeals['deals']:
       properties = deal['properties']
       deal_obj = {'dealname': properties['dealname']['value'], 'dealid':deal['dealId']}
       deals.append(deal_obj)
于 2019-03-19T14:15:06.233 回答