我有一些来自HubSpot CRM API的JSON数据,doing some pagination using Python Code基本上看起来像这样:
[
{
"dealId": 18039629,
"portalId": 62515,
"isDeleted": false
},
{
"dealId": 18040854,
"portalId": 62515,
"isDeleted": false
}
]
......现在我想做的是:
1)一次读取一组“JSON”(意思是dealId,portalId,isDeleted)
2)如果isDeleted==false
,则抓住dealId
和portalId
并存储在变量中
3)使用上面#2中的变量构建一个URL字符串,该字符串可用于返回HubSpot API并获取有关每笔交易的信息(此API端点为https://api.hubapi.com/deals/v1/deal/23487870?hapikey=demo(其中23487870
为来自上述JSON的dealId
4)将单个交易级别信息合并到另一组JSON中。具体来说,我想从JSON中抓取/properties/dealname/value
和properties/dealstage/value
,如下所示:
{
"portalId": 62515,
"dealId": 23487870,
"isDeleted": false,
"properties": {
"dealname": {
"value": "AutomationTestUser-national",
"timestamp": 1457692022120
},
"dealstage": {
"value": "appointmentscheduled",
"timestamp": 1457692022120
}
},
"imports": []
}
5)然后在JSON中输出最终结果:
{
"deals":
[
{
"portalId": 62515,
"dealId": 23487870,
"isDeleted": false,
"properties": {
"dealname": {
"value": "AutomationTestUser-national",
"timestamp": 1457692022120
},
"dealstage": {
"value": "appointmentscheduled",
"timestamp": 1457692022120
}
},
"imports": []
},
{
"portalId": 62515,
"dealId": 23487871,
"isDeleted": false,
"properties": {
"dealname": {
"value": "AutomationTestUser-regional",
"timestamp": 1457692022120
},
"dealstage": {
"value": "appointmentscheduled",
"timestamp": 1457692022120
}
},
"imports": []
}
]
}
...所有在Python中。
任何帮助?
答案 0 :(得分:1)
import json
output = {"deals": []}
data = """
[
{
"dealId": 18039629,
"portalId": 62515,
"isDeleted": false
},
{
"dealId": 18040854,
"portalId": 62515,
"isDeleted": false
}
]
"""
j = json.loads(data)
for deal in j:
if deal['isDeleted']:
continue # Ignore if deleted
dealId = deal['dealId']
url = 'https://api.hubapi.com/deals/v1/deal/' + str(dealId) + '?hapikey=demo' # Construct new url here
data = getSource(url) # implement getSource to perform web request and get data
j2 = json.loads(data)
output['deals'].append(j2)
print(output)