简单的字符串连接失败
Simple string concatenation fails
我有以下代码:
from yahoo_finance import Currency
symbolslist = ["EURUSD","EURGBP","EURJPY","EURRUB","USDCAD","USDCHF","AUSUSD"]
for i in range(len(symbolslist)):
symbol = symbolslist[i]
nomisma = Currency(symbol).get_rate()
quota = symbol + " = " + nomisma
print quota
我得到了结果:
EURUSD = 1.0891
EURGBP = 0.7322
EURJPY = 129.7440
EURRUB = 63.0560
USDCAD = 1.2614
USDCHF = 0.9622
Traceback (most recent call last):
File "yahoopy.py", line 13, in <module>
quota = symbol + " = " + nomisma
TypeError: cannot concatenate 'str' and 'NoneType' objects
我知道这个错误已经在 this link.
中讨论过
但我希望我可以在不求助于 mysql 的情况下克服这个错误。
在 concat 语句上方添加一个 if
子句
if nomisma:
quota = symbol + " = " + nomisma
假设 - 这意味着 AUSUSD
不存在于您的数据库中,这就是 Currency(symbol).get_rate()
返回 None
的原因。另外如前所述 here 它是 AUDUSD
而不是 AUSUSD
注意:最好使用 format
进行连接,如
quota = "{} = {}".format(symbol,nomisma)
问题是打字错误。你写了 AUSUSD
而不是 AUDUSD
。修复它,错误就会消失:
symbolslist = ["EURUSD","EURGBP","EURJPY","EURRUB","USDCAD","USDCHF","AUDUSD"]
仍然使用 format
是个好主意,因为 @BhargavRao 建议捕获此类错误。
我有以下代码:
from yahoo_finance import Currency
symbolslist = ["EURUSD","EURGBP","EURJPY","EURRUB","USDCAD","USDCHF","AUSUSD"]
for i in range(len(symbolslist)):
symbol = symbolslist[i]
nomisma = Currency(symbol).get_rate()
quota = symbol + " = " + nomisma
print quota
我得到了结果:
EURUSD = 1.0891
EURGBP = 0.7322
EURJPY = 129.7440
EURRUB = 63.0560
USDCAD = 1.2614
USDCHF = 0.9622
Traceback (most recent call last):
File "yahoopy.py", line 13, in <module>
quota = symbol + " = " + nomisma
TypeError: cannot concatenate 'str' and 'NoneType' objects
我知道这个错误已经在 this link.
中讨论过但我希望我可以在不求助于 mysql 的情况下克服这个错误。
在 concat 语句上方添加一个 if
子句
if nomisma:
quota = symbol + " = " + nomisma
假设 - 这意味着 AUSUSD
不存在于您的数据库中,这就是 Currency(symbol).get_rate()
返回 None
的原因。另外如前所述 here 它是 AUDUSD
而不是 AUSUSD
注意:最好使用 format
进行连接,如
quota = "{} = {}".format(symbol,nomisma)
问题是打字错误。你写了 AUSUSD
而不是 AUDUSD
。修复它,错误就会消失:
symbolslist = ["EURUSD","EURGBP","EURJPY","EURRUB","USDCAD","USDCHF","AUDUSD"]
仍然使用 format
是个好主意,因为 @BhargavRao 建议捕获此类错误。