我正在尝试拆分字符串,但出现ValueError:需要多个值来解压
我想我明白,为什么会发生此错误,因为没有值可拆分而发生?
基本上我有for循环从xml返回字符串
for channel in tree.findall("channel"):
title = channel.find('title').text
channelname,tvguide = title.split("[")
print(channelname,tvguide)
当我打印标题时,我会看到以下内容:
BeIN Sports 1HD [07:00-07:30] + 106.8分钟自动世界
BeIN Sports 2HD ValueError发生在这里吗?
BeIN体育3HD [23:00-02:00] + 1216.8分钟托里诺FC VS美国巴勒莫城-意大利甲级联赛(意甲)
BeIN Sports 4HD ValueError发生在这里吗?
BeIN Sports 5HD [05:30-07:15] + 91.8分钟马赛奥林匹克VS昂热-法国联赛1 2015-2016一周7
我的问题是,我该如何解决循环问题,以便即使某些字符串不包含电视指南,也可以将所有标题拆分为频道名和电视指南?
例如,在没有电视指南的频道中(在本例中为BeIN Sports 2HD,BeIN Sports 4HD),应使tvguide =“”或类似的名称。
有什么想法吗?
最佳答案
与其尝试分别分配通道名和电视指南,不如使用split
方法返回的列表。
for channel in tree.findall("channel"):
title = channel.find('title').text
description = title.split("[")
print description
这样,您不必担心频道是否具有名称或电视指南,但请确保在频道对象中获取字符串。
as Jon Clements suggested, we still need to figure out if its allowed to access description[1] and as he suggested an elegant way to do is str.partition
for channel in tree.findall("channel"):
title = channel.find('title').text
description = title.partition("[") # you get a tuple with three elements head, separator and tail.
#head is the portion before the separator, separator itself and tail the rest of the portion of the string
print description
关于python - 分割字符串ValueError:需要多个值才能解压,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32858053/