如何从Python中的Json计算值

我需要从我的Json文件中带一个值

{
   "AUD": 1.5974,
   "BGN": 1.9558,
   "BRL": 4.0666,
   "CAD": 1.5889,
   "CHF": 1.1671,
   "CNY": 7.8016,
   "CZK": 25.399,
   "DKK": 7.4484,
   "GBP": 0.872,
   "HKD": 9.6641,
   "HRK": 7.4435,
   "HUF": 311.66,
   "IDR": 16938.0,
   "ILS": 4.2959,
   "INR": 80.183,
   "ISK": 122.7,
   "JPY": 129.75,
   "KRW": 1330.5,
   "MXN": 22.776,
   "MYR": 4.819,
   "NOK": 9.5308,
   "NZD": 1.7031,
   "PHP": 64.544,
   "PLN": 4.2217,
   "RON": 4.6675,
   "RUB": 70.32,
   "SEK": 10.12,
   "SGD": 1.6207,
   "THB": 38.512,
   "TRY": 4.8372,
   "USD": 1.2316,
   "ZAR": 14.572
}

例如,澳元:我需要带来1.5974的价值..

我的剧本:

import json
with open('2018-03-22.txt', 'r') as f:
    data = json.load(f)
    brl = (data["BRL"])
    usd = float(data["USD"])
    aud = (data["AUD"])
    coin=str(input('choose coin: ')).lower()
    amount=int(input('insert amount: '))
    if coin==aud:
        print(aud*amount)

当我打印这个时,我不会看到任何错误,但它不会打印任何内容.

我需要将str转换为float吗?

谢谢你的时间和帮助.

最佳答案 您正在将硬币与aud进行比较,它等于数据[‘AUD’],这是一个整数.试试这个:

if coin=='aud':
    print(aud*amount)

但是,更好的方法可能是这样的:

try:
    print(data[coin.upper()] * amount)
except:
    print('Invalid currency')

这将是一种灵活的方式来转换为许多不同的货币,而不是检查每种货币.

点赞