首页 > 解决方案 > 如何替换 JSON 文件中的值并将其附加到响应

问题描述

我有一个这样的 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)

标签: pythonjson

解决方案


推荐阅读