我需要从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
}

例如,在AUD中:我需要带来的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吗?
谢谢你的时间和帮助。

最佳答案

您正在比较coinaud,后者等于data['AUD'],后者是一个整数。请改为:

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

然而,更好的方法可能是:
try:
    print(data[coin.upper()] * amount)
except:
    print('Invalid currency')

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

10-08 03:25