在python中将多个变量值传递给URL

时间:2016-07-24 20:10:46

标签: python

我有以下代码来使用url获取数据。我从文本文件中传递自动收报机价值及其成功及其;工作(第1部分) 但是作为每个第2部分的代码,当我使用raw_input()使用多个变量传递多个值时,它给出错误" TypeError:没有足够的参数用于格式字符串"

部分-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)

1 个答案:

答案 0 :(得分:2)

您未正确传递这些格式参数:

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'

因此,在您的情况下,您可以将您的参数作为命名参数传递。 ticker, a, b, c, d, e, f

您可以在pyformat

了解有关字符串格式的详情