Python 简单字符串连接失败
我有以下代码:Python 简单字符串连接失败,python,python-2.7,string-concatenation,yahoo-finance,nonetype,Python,Python 2.7,String Concatenation,Yahoo Finance,Nonetype,我有以下代码: 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() quot
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
欧元兑美元=1.0891
欧元GBP=0.7322
欧元兑日元=129.7440
欧元卢布=63.0560
USDCAD=1.2614
美元兑瑞士法郎=0.9622
回溯(最近一次呼叫最后一次):
文件“yahoopy.py”,第13行,在
配额=符号+“=”+nomisma
TypeError:无法连接'str'和'NoneType'对象
我知道这个错误已经在link中讨论过了
但是我希望我能够克服这个错误,而不必求助于mysql。在您的concat语句上方添加一个
if
子句
if nomisma:
quota = symbol + " = " + nomisma
假设-这意味着AUSUSD
不存在于数据库中,这就是货币(符号)的原因。get\u rate()
返回无
。如前所述,它是audud
,而不是audud
注意:最好使用中的concat
quota = "{} = {}".format(symbol,nomisma)
问题是打字错误。而不是您编写的
audud
。修复它,错误将消失:
symbolslist = ["EURUSD","EURGBP","EURJPY","EURRUB","USDCAD","USDCHF","AUDUSD"]
尽管如此,使用@BhargavRao建议的
格式
捕获此类bug仍然是一个好主意。这怎么可能?该程序通过雅虎财经API直接从雅虎财经网站获取数据。奇怪的是,它在最后一个值AUDUUSD时崩溃了。只是一个OT建议:你可以用“符号列表中的符号”的元素在数组中循环。谢谢,我会试试。你是对的。是我愚蠢的打字错误把事情搞砸了。现在一切正常。谢谢你注意到了。我想我以前已经纠正了。。。