我有以下代码来使用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)
答案 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
了解有关字符串格式的详情