如何从Python中的Json计算值

时间:2018-03-23 15:21:51

标签: 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吗?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:7)

您正在将coinaud进行比较,等于data['AUD'],这是一个整数。试试这个:

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

然而,更好的方法可能是:

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

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