简单的字符串连接失败

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 建议捕获此类错误。