代码之家  ›  专栏  ›  技术社区  ›  David Frick

解析json数据失败,不确定原因

  •  0
  • David Frick  · 技术社区  · 1 年前

    以下为 this question ,我在这里得到了发出ajax请求的代码:

    import requests
    import json
    
    headers = {
        'authority': 'services-dynarep.ddwa.finra.org',
        'accept': 'application/json, text/plain, */*',
        'accept-language': 'en-US,en;q=0.6',
        'content-type': 'application/json',
    }
    
    data = '{"fields":["issueSymbolIdentifier","issuerName","isCallable","productSubTypeCode","couponRate","maturityDate","industryGroup","moodysRating","standardAndPoorsRating","lastSalePrice","lastSaleYield"],"dateRangeFilters":[],"domainFilters":[],"compareFilters":[],"multiFieldMatchFilters":[{"fuzzy":false,"searchValue":"gme","synonym":true,"fields":[{"name":"issuerName","boost":1}]}],"orFilters":[],"aggregationFilter":null,"sortFields":["+issuerName"],"limit":50,"offset":0,"delimiter":null,"quoteValues":false}'
    
    response = requests.post('https://services-dynarep.ddwa.finra.org/public/reporting/v2/data/group/FixedIncomeMarket/name/CorporateAndAgencySecurities',
                             headers=headers, data=data)
    print(response.status_code)
    
    

    CSRF代码的cookie已被删除。

    我想要的数据埋在json响应中。但是,任何将json转换为DataFrame或仅转换为常规字典的尝试都失败了。

    data = json.dumps(response.json()['returnBody']['data'], indent=4)
    
    print(data.replace('\\n', '').replace('\\', ''))
    # print(pd.read_json(data.replace('\\n', '').replace('\\', '')))
    

    给予

    "[{"isCallable":"Y","couponRate":null,"issueSymbolIdentifier":"NTEB5563784","issuerName":"NTE MOBILITY PARTNERS SEGMENTS 3 LLC","maturityDate":"2028-06-30","productSubTypeCode":"CORP","moodysRating":"Baa2","standardAndPoorsRating":null,"lastSaleYield":null,"industryGroup":null,"lastSalePrice":null},{"isCallable":"Y","couponRate":null,"issueSymbolIdentifier":"NTEB5563785","issuerName":"NTE MOBILITY PARTNERS SEGMENTS 3 LLC","maturityDate":"2028-06-30","productSubTypeCode":"CORP","moodysRating":"Baa2","standardAndPoorsRating":null,"lastSaleYield":null,"industryGroup":null,"lastSalePrice":100},{"isCallable":"Y","couponRate":null,"issueSymbolIdentifier":"NTEB5563786","issuerName":"NTE MOBILITY PARTNERS SEGMENTS 3 LLC","maturityDate":"2028-06-30","productSubTypeCode":"CORP","moodysRating":"Baa2","standardAndPoorsRating":null,"lastSaleYield":null,"industryGroup":null,"lastSalePrice":100}]"
    

    我替换了/n和//s,使pandas可以读取数据。然而,它仍然无法读取json ValueError: Trailing data 我错过了什么?

    0 回复  |  直到 1 年前