在数组中附加多个值

2024-04-26 06:32:09 发布

您现在位置:Python中文网/ 问答频道 /正文

“我试图从Hubspot获取deals数据,在本例中,我试图获取dealid和deal name以简化问题,但稍后我将获取更多属性。下面的代码为我提供了一个dealid数组和一个deal名称数组。我可以让它代替多个数组,而是得到以下结果:

{{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'])

Tags: 代码urlnamesresponse数组propertiesapikeyappend
3条回答

您已经拥有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']})

这可以通过列表理解来解决:

[{'dealId':deal['dealId'],'dealname':deal['properties']['dealname']['value']} for deal in jsonDeals['deals']]

正如E.Serra建议的那样,deal\u 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)

相关问题 更多 >

    热门问题