Python 属性错误:';dict#u值';对象没有属性';rsplit';

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是在字典中定义的)和/或为什么创建字符串然后拆分不起作用

我试图反向拆分从文本文件生成的URL,并且在打印该拆分值时出现上述错误。我曾尝试从URL生成一个字符串并将其拆分,但这会导致GUI完全冻结,甚至不会生成错误消息。我的代码在这里:

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]