【问题标题】:how to pass pass parameter to get value from xml request.get python如何传递参数以从 xml request.get python 中获取值
【发布时间】:2013-09-16 20:16:37
【问题描述】:

如何使用 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)

【问题讨论】:

    标签: python parameters web-scraping


    【解决方案1】:

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

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

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

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

    print get_xml("101")
    

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

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

    或:

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

    (对于最后一个,请查看this link

    【讨论】:

      【解决方案2】:
      def get_xml(x):    
          url = "http://charts.com/charts/%s.xml" % x
          xml = requests.get(url).text
          return xml
      
      print get_xml(101)
      

      【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        def get_xml(x):

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

        打印 get_xml("101")

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-11-28
          • 1970-01-01
          • 1970-01-01
          • 2018-08-01
          • 2016-09-09
          • 1970-01-01
          • 1970-01-01
          • 2020-04-17
          相关资源
          最近更新 更多