我有一个if else声明。我想做的是。
我正在循环,看看是否有特定的文字,如果有的话; 如果文本没有将该字段留空,请在特定列的输出中添加该文本。但是它似乎让所有字段都为空。
这是我的代码
for items in parseBio1:
if "Snapchat" in items:
worksheet.write_string(row+1,col+13,items)
else:
worksheet.write_string(row,col+13,"None")
if "com" in items:
worksheet.write_string(row+1, col+11, items)
else:
worksheet.write_string(row,col+11,"None")
这是我得到的输出。
按要求。这是我解析输入的方式
parseBio1 = parseBio.split('\n')
row+=1
for items in parseBio1:
if "Snapchat" in items:
worksheet.write_string(row+1,col+13,items)
else:
worksheet.write_string(row,col+13,"None")
当我摆脱这样的else语句时会发生这种情况:
for items in parseBio1:
digit = items.isdigit()
if "Snapchat" in items:
worksheet.write_string(row+1,col+13,items)
if "com" in items:
worksheet.write_string(row+1, col+11, items)
答案 0 :(得分:1)
以下是我要做的事情:
for items in parseBio1:
if "Snapchat" in items:
worksheet.write_string(row, col+13, items)
if "com" in items:
worksheet.write_string(row, col+11, items)
row += 1
这样,如果项目中包含Snapchat
或com
,则会填充相应的列。
答案 1 :(得分:0)
如果我正确理解了这一点,那么您将遍历由'\ n'分隔的字符串列表。如果是这样,您的if语句的条件可能稍微不准确。您可能正在尝试查找在不同情况下编写的单词,python不会考虑:
>> x = "Testing the waters"
>> "test" in x
False
因此,我建议您对条件中的项目调用.lower(),并将它们与全小写字词进行比较。
for items in parseBio1:
# Try to call .lower() on items and compare to an all lowercase string
if "snapchat" in items.lower():
worksheet.write_string(row+1,col+13,items)
else:
worksheet.write_string(row,col+13,"None")
if "com" in items.lower():
worksheet.write_string(row+1, col+11, items)
else:
worksheet.write_string(row,col+11,"None")