AttributeError:“tuple”对象没有属性“strip”

问题描述 投票:0回答:3

我使用Python,这是我的代码

        myUser = 'username'
        myServer = 'http://api.url.net', "{\"orga\":\"monorga\",\"coupon\":\"moncoupon\"}"
        myPass = 'pass'
        authString = base64.encodestring('%s:%s' % (myUser, myPass))
        headers = {'Authorization':"Basic %s" % authString}
        req = urllib2.Request(myServer, None, headers)
        openedUrl = urllib2.urlopen(req)

url = url.strip()
AttributeError: 'tuple' object has no attribute 'strip'

请帮助我

python url attributes
3个回答
5
投票

当您编写

url = 'https://api.url.net', "{\"orga\":\"monorga\",\"coupon\":\"moncoupon\"}"
时,基本上您只是创建一个由两个元素(
tuple
'https://api.url.net'
)组成的
"{\"orga\":\"monorga\",\"coupon\":\"moncoupon\"}"
,并将对此元组的引用分配给
url
变量。这是因为,在 python 中,并不总是需要编写元组的括号:例如
a = 1, 2

因此,

url
现在是一个元组。另外,元组没有
strip
方法,因此您无法调用
url.strip

要在

strip
上调用
url
,必须先将其转换为字符串。


2
投票

我在遇到此错误消息时发现了这个问题。

就我而言,问题是我在声明字符串的行上有一个错误的尾随逗号,如下所示:

x = "my string",

因此,我觉得很奇怪,

x 是一个长度为 1 的元组。第一个也是唯一的元素是

"my string"

这让我觉得这是一个容易犯且令人困惑的错误,所以我想我应该把这个答案放在这里。


0
投票

请注意,您的输出是一个元组:👇

url = 'https://api.url.net', "{\"orga\":\"monorga\",\"coupon\":\"moncoupon\"}"

并且元组对象没有属性“strip”。 你可以用这个方法解决这个问题:

url = url[0] + url[1]
© www.soinside.com 2019 - 2024. All rights reserved.