提问人:Jesse Morelli 提问时间:7/12/2022 更新时间:7/12/2022 访问量:50
如果有些人只把他们的名字放在列表中,你如何将全名分为名字和姓氏?使用 OpenPyxl [duplicate]
How do you split full name to first and last names if some people only put their first name in the list? Using OpenPyxl [duplicate]
问:
#What 到目前为止,我没有得到错误,这不起作用:ValueError:没有足够的值来解包(预期为 2,得到 1)。
for cell in ws[fullname_column][1:]:
firstname, lastname = cell.value.split()
ws.cell(row=cell.row, column=firstname_column).value = firstname
ws.cell(row=cell.row, column=lastname_column).value = lastname
答:
0赞
Avinash Sah
7/12/2022
#1
而不是
firstname, lastname = cell.value.split()
你应该
- 拆分并检查返回列表的长度。
- 如果长度为 1,那么您可能只有第一个名字
- 如果长度为 2,则您同时拥有 1 号和姓氏
评论
0赞
Jesse Morelli
7/12/2022
在这种情况下,这就是问题所在,因为某些值的长度=1,因为它们只在单元格中输入了它们的名字或姓氏。我想将所有长度=1 仅拆分为名字并将姓氏留空,但我不知道如何解决这个问题。
1赞
Avinash Sah
7/12/2022
哦,所以你可以改为按索引从行中获取值。
0赞
Jesse Morelli
7/12/2022
正确,但是如果没有可用的姓氏,当它无法拆分它时,您将如何使用 split()?
0赞
Avinash Sah
7/12/2022
你不需要分裂,看看我的第二个答案
0赞
Avinash Sah
7/12/2022
#2
在 OpenPyXL 中,您可以按行获取值,如下所示:
sheet[f"A{index}"].value)
因此,如果列 A 是名字,B 是姓氏,则可以单独获取两者的值。
这是行号index
评论