我正在尝试读取excel文件中的单元格并将其分配给变量。当单元格为空白时,问题就来了。然后为变量分配字符串“ None”。我希望它为空白(“”)。有没有一种简单的方法可以在Python的一行中做到这一点?像这样吗?
strings.xml
我的目标是多次实现而无需编写(sheet.cell(row = 3,column = 2).value)。由于我还有很多其他变量需要检查,因此很难维护。
答案 0 :(得分:4)
如果您有一个值为“ None”的单元格,则此方法很危险。最Python的方法是两行:
v = sheet.cell(row=3, column=2).value
a = str(v) if v is not None else ''
多次写入sheet.cell(row=3, column=2).value
会导致不必要的对工作表对象的访问,因此避免它的目标是好的。但是,将它写成一行的目标应该排在写得好的目标之后。
答案 1 :(得分:1)
几个单行代码,它们不会替换旧的“先分配再测试”的2行方法:
创建一个生成器并在一个元素列表上进行迭代,该列表允许分配给一个变量,然后对该变量使用三进制,使用next
进行一次迭代并获取值:
v = next("" if x is None else str(x) for x in [sheet.cell(row=3, column=2).value])
也许更有趣:如果值不能为0,则可以使用or
:
v = str(sheet.cell(row=3, column=2).value or "")
现在值得保存一行吗?我让你知道。
答案 2 :(得分:0)
您可以将其分成几行,感觉会更好,并且有几种选择:
res = str(sheet.cell(row=3, column=2).value)
a = "" if res == "None" else res
或其他选项,例如:
a = {"None" : ""}.get(res, res)