从JSON中提取数据并使用python进行迭代

2024-10-03 04:36:02 发布

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

因此,我使用HubSpot API来跟踪系统中的“交易”,但是没有一种健壮的方法来搜索/过滤它返回的数据。因此,它只需将系统中的所有“交易”转储到一个大JSON中,然后提供一些分页信息,以帮助您在后端将其粘在一起。在

以下是演示/源API URL: https://api.hubapi.com/deals/v1/deal/all?hapikey=demo

这将返回JSON,基本如下所示(缩短):

{  
   "deals":[  
      {  
         "portalId":62515,
         "dealId":17886969,
         "isDeleted":false,
         "associations":{
            "associatedCompanyIds":[  
               113448746
            ]
         },
         "properties":{
            "dealname":{  
               "value":"Google Website"
            },
            "amount":{  
               "value":"150000"
            },
            "hubspot_owner_id":{  
               "value":"72"
            },
            "dealstage":{  
               "value":"qualifiedtobuy"
            },
            "dealtype":{  
               "value":"existingbusiness"
            }
         },
         "imports":[  

         ]
      }
   ],
   "hasMore":false,
   "offset":28692358
}

但是。。。在

1)有很多交易返回,我想用dealtype来过滤,这是一个可以改变的变量。例如,我只想返回值为“qualifiedtobuy”的交易

2)然后我需要运行一个查询,并根据dealId对每个交易执行“dostuff”。我想这意味着我需要把上面的所有内容都放到一个dict中,然后以某种方式进行迭代?我不确定。在

到目前为止,这就是我所拥有的,但这实际上只是获取了JSON并将其转换为dict(我想)。在

^{pr2}$

我不知道接下来要采取什么步骤来获取dealId值,然后对返回的每个值执行“操作”。在

任何帮助都是非常感谢的。在

更新:以下是原始dict,未针对一笔交易的属性进行简化:

{u'hs_lastmodifieddate': {u'sourceId': None, u'timestamp': 1457479099306, u'versions': [{u'timestamp': 1457479099306, u'sourceVid': [], u'name': u'hs_lastmodifieddate', u'value': u'1457479099306', u'source': u'CALCULATED'}], u'value': u'1457479099306', u'source': u'CALCULATED'}, u'pipeline': {u'sourceId': None, u'timestamp': 1457479063182, u'versions': [{u'timestamp': 1457479063182, u'name': u'pipeline', u'value': u'default', u'sourceVid': []}], u'value': u'default', u'source': None}, u'num_associated_contacts': {u'sourceId': None, u'timestamp': 0, u'versions': [{u'source': u'CALCULATED', u'name': u'num_associated_contacts', u'value': u'0', u'sourceVid': []}], u'value': u'0', u'source': u'CALCULATED'}, u'dealstage': {u'sourceId': None, u'timestamp': 1457479063157, u'versions': [{u'timestamp': 1457479063157, u'sourceVid': [], u'name': u'dealstage', u'value': u'qualifiedtobuy', u'source': u'API'}], u'value': u'qualifiedtobuy', u'source': u'API'}, u'createdate': {u'sourceId': None, u'timestamp': 1457479063181, u'versions': [{u'timestamp': 1457479063181, u'name': u'createdate', u'value': u'1457479063181', u'sourceVid': []}], u'value': u'1457479063181', u'source': None}, u'hs_salesforceopportunityid': {u'sourceId': None, u'timestamp': 1457479097680, u'versions': [{u'timestamp': 1457479097680, u'sourceVid': [], u'name': u'hs_salesforceopportunityid', u'value': u'00628000007nhqFAAQ', u'source': u'SALESFORCE'}], u'value': u'00628000007nhqFAAQ', u'source': u'SALESFORCE'}, u'hubspot_owner_assigneddate': {u'sourceId': None, u'timestamp': 1457479097680, u'versions': [{u'timestamp': 1457479097680, u'sourceVid': [], u'name': u'hubspot_owner_assigneddate', u'value': u'1457479097680', u'source': u'SALESFORCE'}], u'value': u'1457479097680', u'source': u'SALESFORCE'}, u'hubspot_owner_id': {u'sourceId': None, u'timestamp': 1457479097680, u'versions': [{u'timestamp': 1457479097680, u'sourceVid': [], u'name': u'hubspot_owner_id', u'value': u'11626092', u'source': u'SALESFORCE'}], u'value': u'11626092', u'source': u'SALESFORCE'}, u'amount': {u'sourceId': None, u'timestamp': 1457479063157, u'versions': [{u'timestamp': 1457479063157, u'sourceVid': [], u'name': u'amount', u'value': u'150000', u'source': u'API'}], u'value': u'150000', u'source': u'API'}, u'hs_createdate': {u'sourceId': None, u'timestamp': 1457479063181, u'versions': [{u'timestamp': 1457479063181, u'name': u'hs_createdate', u'value': u'1457479063181', u'sourceVid': []}], u'value': u'1457479063181', u'source': None}, u'salesforcelastsynctime': {u'sourceId': None, u'timestamp': 1457479099298, u'versions': [{u'timestamp': 1457479099298, u'sourceVid': [], u'name': u'salesforcelastsynctime', u'value': u'1457479070904', u'source': u'SALESFORCE'}], u'value': u'1457479070904', u'source': u'SALESFORCE'}, u'closedate': {u'sourceId': None, u'timestamp': 1457479099298, u'versions': [{u'timestamp': 1457479099298, u'sourceVid': [], u'name': u'closedate', u'value': u'1461013200000', u'source': u'SALESFORCE'}], u'value': u'1461013200000', u'source': u'SALESFORCE'}, u'dealtype': {u'sourceId': None, u'timestamp': 1457479063157, u'versions': [{u'timestamp': 1457479063157, u'sourceVid': [], u'name': u'dealtype', u'value': u'existingbusiness', u'source': u'API'}], u'value': u'existingbusiness', u'source': u'API'}, u'dealname': {u'sourceId': None, u'timestamp': 1457479063157, u'versions': [{u'timestamp': 1457479063157, u'sourceVid': [], u'name': u'dealname', u'value': u'Google Website', u'source': u'API'}], u'value': u'Google Website', u'source': u'API'}}

Tags: namenoneapisourcevalue交易versionssalesforce
1条回答
网友
1楼 · 发布于 2024-10-03 04:36:02

编辑:
我试过詹姆斯的答案,结果成功了。谢谢分享! 我在lambda函数的任何地方调用了eventMenu.consume(),而另一个上下文菜单不会弹出
Hovewer我觉得这很奇怪,因为我在ImageView的setOnContextMenuRequest()方法中调用了它,它使用了另一个上下文菜单

更改代码:

table.setOnContextMenuRequested(eventMenu -> {
            eventMenu.consume();
            tableContextMenu.show(paneWorkspace, eventMenu.getSceneX(), eventMenu.getSceneY());
        });
paneWorkspace.setOnContextMenuRequested(event ->
            paneContextMenu.show(paneWorkspace, event.getSceneX(), event.getSceneY())
    );

相关问题 更多 >