Python 使用不同的姓氏数删除姓名列表
试图用美味的汤来讨好瑞典议员。当我运行scraper时,我得到“ValueError:太多的值无法解包(预期为3)” 脚本输出一个csv,但只有五个名称。名单上的第六个人是阿尔姆·埃里克森,简妮(议员)。我想问题是她有两个姓——阿尔姆·埃里克森,代码只需要三个值:firstname、lastname和party 我应该如何对字段拆分进行编码,使其也适用于双姓 页面上的名称写为Python 使用不同的姓氏数删除姓名列表,python,Python,试图用美味的汤来讨好瑞典议员。当我运行scraper时,我得到“ValueError:太多的值无法解包(预期为3)” 脚本输出一个csv,但只有五个名称。名单上的第六个人是阿尔姆·埃里克森,简妮(议员)。我想问题是她有两个姓——阿尔姆·埃里克森,代码只需要三个值:firstname、lastname和party 我应该如何对字段拆分进行编码,使其也适用于双姓 页面上的名称写为 Last_name, first_name (party) 代码: 很明显,分裂在这里不是一个好的解决方案。(或者应该
Last_name, first_name (party)
代码:
很明显,分裂在这里不是一个好的解决方案。(或者应该使用逗号和括号而不是空格分隔) 使用regexp:
import re
re.match('([^,]*), ([^(]*) \((.*)\)', 'Alm Ericson, Janine (MP)').groups()
返回
('Alm Ericson', 'Janine', 'MP')
很明显,分裂在这里不是一个好的解决方案。(或者应该使用逗号和括号而不是空格分隔) 使用regexp:
import re
re.match('([^,]*), ([^(]*) \((.*)\)', 'Alm Ericson, Janine (MP)').groups()
返回
('Alm Ericson', 'Janine', 'MP')
我想你也可以使用一个函数返回列表中的部分(不像已经给出的答案那么清晰),例如
我想你也可以使用一个函数返回列表中的部分(不像已经给出的答案那么清晰),例如
下面是一个简单的正则表达式,它应该可以做到这一点
import re
print(re.match("(.*), (.*) \((.*)\)", 'Alm Ericson, Janine (MP)').groups())
从科伦丁的回答中得到启发,这里有一个简单的正则表达式,可以实现这一点
import re
print(re.match("(.*), (.*) \((.*)\)", 'Alm Ericson, Janine (MP)').groups())
灵感来源于科伦丁的回答因为它与靓汤无关,所以你应该管理标签和问题。这段代码中有很多杂音,因为它与靓汤无关,所以你应该管理标签和问题。这段代码中有很多噪音,我认为科伦丁的回答更适合这种情况。对于其他开发人员来说,它更易于阅读和维护,我同意@BlueSheepToken。我只是想尝试写些python。我很乐意记下改进笔记。我已经超过了他们的。只是我更喜欢正则表达式方法,因为它更清晰,但您的代码完全可读:)而且对新开发人员更友好。我认为Corentin的答案更适合这种情况。对于其他开发人员来说,它更易于阅读和维护,我同意@BlueSheepToken。我只是想尝试写些python。我很乐意记下改进笔记。我已经超过了他们的。只是我更喜欢正则表达式方法,因为它更清晰,但您的代码完全可读:)并且对新开发人员更友好。我对Python和一般的编码都很陌生,你能告诉我应该把它放在代码的什么地方吗?啊哈,好的。我对Python和一般的编码都很陌生,你能告诉我应该把它放在代码的什么地方吗?