我需要从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吗?
谢谢你的时间和帮助。
最佳答案
您正在比较coin
与aud
,后者等于data['AUD']
,后者是一个整数。请改为:
if coin=='aud':
print(aud*amount)
然而,更好的方法可能是:
try:
print(data[coin.upper()] * amount)
except:
print('Invalid currency')
这将是一种灵活的方式来转换到许多不同的货币,而不是检查每一种货币。