Python 属性错误:';dict#u值';对象没有属性';rsplit';
我试图反向拆分从文本文件生成的URL,并且在打印该拆分值时出现上述错误。我曾尝试从URL生成一个字符串并将其拆分,但这会导致GUI完全冻结,甚至不会生成错误消息。我的代码在这里:Python 属性错误:';dict#u值';对象没有属性';rsplit';,python,Python,我试图反向拆分从文本文件生成的URL,并且在打印该拆分值时出现上述错误。我曾尝试从URL生成一个字符串并将其拆分,但这会导致GUI完全冻结,甚至不会生成错误消息。我的代码在这里: a = URLS.rsplit('=', 1) 尝试从URL解析字符串然后拆分时使用的代码如下: urlstr = str(URLS) a = urlstr.rsplit('=', 1) print(a) 有人能告诉我为什么我不能使用拆分方法拆分URL(URL是在字典中定义的)和/或为什么创建字符串然后拆分不起作用
a = URLS.rsplit('=', 1)
尝试从URL解析字符串然后拆分时使用的代码如下:
urlstr = str(URLS)
a = urlstr.rsplit('=', 1)
print(a)
有人能告诉我为什么我不能使用拆分方法拆分URL(URL是在字典中定义的)和/或为什么创建字符串然后拆分不起作用
谢谢A
dict\u值
对象是一个序列。它没有rsplit
方法,尽管str
对象有
实际上,您可能应该使用从URL提取信息,而不是使用rsplit
比如说,
>>> import urllib.parse as parse
>>> url = 'http://stackoverflow.com/questions?x=foo&y=bar'
>>> parse.urlsplit(url)
SplitResult(scheme='http', netloc='stackoverflow.com', path='/questions', query='x=foo&y=bar', fragment='')
>>> parse.urlsplit(url).query
'x=foo&y=bar'
>>> parse.parse_qs(parse.urlsplit(url).query)
{'x': ['foo'], 'y': ['bar']}
因此,如果URL是dict,那么您可以使用
>>> URLS = {'a': 'http://stackoverflow.com/questions?x=foo&y=bar'}
>>> for url in URLS.values():
... print(parse.parse_qs(parse.urlsplit(url).query))
...
{'x': ['foo'], 'y': ['bar']}
与
rsplit
不同,它允许您正确地解压缩百分比编码的查询字符串,并控制空白值的解析。错误表明url
不是字符串,而是dict\u values
对象。我认为这就是调用字典的values
方法(在Python 3中)时得到的结果。values视图是一个iterable对象,因此您可能希望在其上循环,例如:
for url in URLS:
a = url.rsplit("=", 1)
# do stuff with a here
或者,如果您想要各种a
值的列表,您可以使用列表:
a_lst = [url.rsplit("=", 1) for url in URLS]