如何替换JSON文件中的值并将其附加到响应

2024-10-01 11:32:31 发布

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

我有一个类似这样的JSON文件

{
   "Get_Request_1": {
      "FindRequest": {
         "CompanyIdentifiers_typehint": [
            "CompanyIdentifiers"
         ],
         "CompanyIdentifiers": [
            {
               "RIC": {
                  "Value": "MSFT.O"
               }
            }
         ],
      }
   }
}

我使用以下函数通过API调用获取数据:

def RetrieveQuotes(token, appid):
    quoteRequestMsg = json.load(open('Get_Request_1.json'))
    
    quoteURL = 'http://api.abcd.com/api/Developments/Developments.svc/REST/Developments_1/Developments_1'
    headers = {'content-type': 'application/json;charset=utf-8',
               'ApplicationID': appid, 'Token': token}
    quoteResult = doSendRequest(quoteURL, quoteRequestMsg, headers)
    if quoteResult and quoteResult.status_code == 200:
        print('Quote response message: ')
        #print(quoteResult.json())
        #print(json.dumps(quoteResult.json(), sort_keys=True,indent=2, separators=(',', ':')))
    with open('quoteResult.json', 'w') as f:
        json.dump(quoteResult.text,f)

上面的脚本运行良好。现在我有5家公司需要获取数据。数据值显示在数据框中

import pandas as pd
df = pd.read_excel('Company_List.xlsx')
print(df)

          Company Name Ticker
0    Microsoft Corp    MSFT.O
1             ABB Ltd.   ABBN
2  Abbott Laboratories  ABT.N
3          AbbVie Inc.   ABBV
4        Accenture plc  ACN.N

如何循环通过df['Ticker']并将其附加到结果响应JSON中。? 我是python新手,并逐渐学习这些东西。我试过以下方法

def RetrieveQuotes(token, appid):
    quoteRequestM

    sg = {
       "Get_Request_1": {
          "FindRequest": {
             "CompanyIdentifiers_typehint": [
                "CompanyIdentifiers"
             ],
             "CompanyIdentifiers": [
                {
                   "RIC": {
                      "Value": "MSFT.O"
                   }
                }
             ],
          }
       }
    }
        
        quoteURL = 'http://api.abcd.com/api/Developments/Developments.svc/REST/Developments_1/Get_Developments_1'
        headers = {'content-type': 'application/json;charset=utf-8',
                   'ApplicationID': appid, 'Token': token}
        print('############### Sending Quote request message to TRKD ###############')
        import pandas as pd
        df = pd.read_excel('Company_List.xlsx')
        for i in df['Ticker']:
            tmp=i
            quoteRequestMsg["Get_Request_1"]["FindRequest"]["CompanyIdentifiers"][0]['RIC']=tmp
            quoteResult = doSendRequest(quoteURL, quoteRequestMsg, headers)
            #print(quoteResult)
            quoteResult.append(quoteResult)
            if quoteResult and quoteResult.status_code == 200:
                print('Quote response message: ')
                #print(quoteResult.json())
                #print(json.dumps(quoteResult.json(), sort_keys=True,indent=2, separators=(',', ':')))
            with open('quoteResult.json', 'w') as f:
                json.dump(quoteResult.text,f)

Tags: tokenapijsondfgetrequestasappid