2016-07-24 102 views
-2

我有下面的代码来使用url获取数据。我将文本文件及其成功和它的工作(第一部分) ,但作为代码每部分2,当我通过raw_input()使用多个变量传递多个值,它的给出错误“TypeError:不够论据格式字符串”将多个变量值传递到python中的URL

部分-1

ticker = line.strip(); 
url = "http://ichart.finance.yahoo.com/table.csv?s=%s.ns&a=08&b=08&c=2015&d=08&e=08&f=2016&g=d&ignore=.csv" % ticker 
r = requests.get(url) 

部分-2

ticker = line.strip(); 
url = "http://ichart.finance.yahoo.com/table.csv?s=%s.ns&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=d&ignore=.csv" %ticker %a %b %c %d %e %f 
r = requests.get(url) 

回答

2

你不能传递那些格式 PARAM ETERS正确:

url = "...?s=%s.ns&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=d&ignore=.csv"%(ticker, a, b, c, d, e, f) 
#                ^^^^^^^^^^^^^

当通过格式化的参数,你应该通过他们都在一个元组,而不是独立。

考虑到您的参数数量,您可以改为使用新样式格式以获得更易读的代码。

使用示例如下:

c = 'a={a}&b={b}'.format(a=1, b=2) 
# 'a=1&b=2' 

所以你的情况,你会通过你的paramters作为命名的参数即。 ticker, a, b, c, d, e, f

您可以了解更多关于字符串在pyformat

+0

格式化谢谢摩西。我是python新手。是工作 –