代码之家  ›  专栏  ›  技术社区  ›  HJA24

Python:从JSON中提取变量

  •  -3
  • HJA24  · 技术社区  · 9 年前

    我想从JSON响应中提取一些变量,并将其保存在csv文件中。 JSON响应如下所示:

    {
    "Response":"Success",
    "Message":"Coin list succesfully returned!",
    "BaseImageUrl":"https://www.cryptocompare.com",
    "BaseLinkUrl":"https://www.cryptocompare.com",
    "DefaultWatchlist":{
    "CoinIs":"1182,7605,5038,24854,3807,3808,202330,5324,5031,178978",
    "Sponsored":"1182"
    },
    "Data":{
    "USC":{
    "Id":"100954",
    "Url":"/coins/usc/overview",
    "ImageUrl":"/media/1383363/usc.png",
    "Name":"USC",
    "Symbol":"USC",
    "CoinName":"Ultimate Secure Cash",
    "FullName":"Ultimate Secure Cash (USC)",
    "Algorithm":"SHA256",
    "ProofType":"PoS",
    "FullyPremined":"0",
    "TotalCoinSupply":"200084200",
    "PreMinedValue":"N/A",
    "TotalCoinsFreeFloat":"N/A",
    "SortOrder":"1233",
    "Sponsored":false
    

    名称、符号、货币名称和ID

    为了提取JSON响应的所有值,我使用以下代码:

    def getCoinList():
    req = requests.get(‘https://www.cryptocompare.com/api/data/coinlist/’).json()   
    info = req[‘Data’]
    coinList = pd.DataFrame(info)
    coinList = coinList.transpose()
    coinList.to_csv(‘coinList.csv’)
    return coinList
    

    然而,我只想提取指定的变量。

    def getCoinList():
    req = requests.get(‘https://www.cryptocompare.com/api/data/coinlist/’).json()['Data']
    info = req['...'] /// How do I all four variables?
    coinList = pd.DataFrame(info)
    coinList = coinList.transpose()
    coinList.to_csv(‘coinList.csv’)
    return coinList
    

    我不知道如何修改此代码以仅提取四个指定变量?谁能帮我做这个。提前感谢,

    1 回复  |  直到 9 年前
        1
  •  1
  •   jpyams David Thompson    9 年前

    如果您想要一个包含多个特定值的列表 dict ,您需要手动创建列表:

    mylist = [req['Name'], req['Symbol'], req['CoinName'], req['ID']]
    

    或者,如果你想 :

    mydict = {'Name': req['Name'], 'Symbol': req['Symbol'],
              'CoinName': req['CoinName'], 'ID': req['ID']}
    

    import csv
    
    with open('coinList.csv', 'a') as filep:
        csvwriter = csv.writer(filep)
        csvwriter.writerow([req['Name'], req['Symbol'], req['CoinName'], req['ID']])