1

如何使用 request.get() 将参数传递给函数

所以这是我的原始代码

def get_xml():
    xml = requests.get("http://charts.com/charts/101.xml").text
    return xml
print get_xml()

上面的这段代码可以得到我需要的东西,但是我怎样才能用 x 替换 "101" 。我试图用 url 变量替换我的地址,但我得到了 typeError 。请指教。

def get_xml(x):

    url = "http://charts.com/charts/" + x + ".xml"
    xml = requests.get(url).text
    return xml

print get_xml(101)
4

4 回答 4

1
def get_xml(x):    
    url = "http://charts.com/charts/%s.xml" % x
    xml = requests.get(url).text
    return xml

print get_xml(101)
于 2013-09-16T20:18:12.843 回答
1

您可以尝试使用格式,如下例所示:

def get_xml(x):

    url = "http://charts.com/charts/{}.xml".format(x)
    xml = requests.get(url).text
    return xml

print get_xml(101)

编辑:有关格式的更详尽解释,请参阅以下链接

于 2013-09-16T20:18:27.080 回答
1

定义 get_xml(x):

url = "http://charts.com/charts/" + x + ".xml"
xml = requests.get(url).text
return xml

打印 get_xml("101")

这很可能是您修改后的代码的样子。我认为代码认为您正在尝试将文本和数字添加在一起

于 2013-09-16T20:18:48.430 回答
1

Python 是一种强类型语言。这意味着它不知道如何添加整数和字符串:

>>> "5" + 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

在你的情况下,101是一个整数。

您可以尝试get_xml使用字符串作为参数调用该函数:

print get_xml("101")

或者在尝试连接之前将参数(函数内部)转换(转换)为字符串(这第二个选项可能更好,因为这样你的函数将可以正常工作,x无论是 anint还是 an str,并且不会依赖于善意调用get_xml函数的程序员):

url = "http://charts.com/charts/" + str(x) + ".xml"

或者:

url = "http://charts.com/charts/%s.xml" % x

(对于最后一个,请查看此链接

于 2013-09-16T20:21:14.477 回答