Python get_text()返回空值。我想把它转换成无
我正在使用beautifulsoup处理数据 现在我遇到了一个问题 我的代码在下面Python get_text()返回空值。我想把它转换成无,python,beautifulsoup,Python,Beautifulsoup,我正在使用beautifulsoup处理数据 现在我遇到了一个问题 我的代码在下面 elif '임차인' and '점유부분' in table.get_text(): #임차인 현황 print(table) for renters in table.findAll('tr')[1::]: # print(renters) for renter_values in renters.findAll('td', ({'class':'center'}
elif '임차인' and '점유부분' in table.get_text(): #임차인 현황
print(table)
for renters in table.findAll('tr')[1::]:
# print(renters)
for renter_values in renters.findAll('td', ({'class':'center'})):
print("It is \n" + renter_values.get_text())
registration_of_businessman = renters.findAll('td', ({'class': 'left'}))[0]
etc = renters.findAll('td', ({'class': 'left'}))[1]
rental_fee = renters.find('td', ({'class': 'money'}))
以上是部分输出。您可以在第四个“It is”下面看到空值
您可以在这里获取表源
我怎样才能解决这个问题呢?我不知道你到底想要什么。是否要将“无”或字符串转换为字符串“无”?以下是一个例子:
elif '임차인' and '점유부분' in table.get_text(): #임차인 현황
print(table)
for renters in table.findAll('tr')[1::]:
# print(renters)
for renter_values in renters.findAll('td', ({'class':'center'})):
return_value = renter_values.get_text()
if return_value:
print("It is \n" + return_value)
registration_of_businessman = renters.findAll('td', ({'class': 'left'}))[0]
etc = renters.findAll('td', ({'class': 'left'}))[1]
rental_fee = renters.find('td', ({'class': 'money'}))
在检查beautifulSoup get_text方法时,我发现如果此方法没有捕获到任何值,则此方法将返回一个'
。它在字符串分隔符上使用.join()
函数。因此,该方法返回的空字符串是正确的。如果确实需要None
赋值,则在return\u赋值下添加一行,如:return\u value=return\u value If len(return\u value)>0 else None
代码如下:
def get_text(self, separator=u"", strip=False, types=(NavigableString, CData)):
"""
Get all child strings, concatenated using the given separator.
"""
return separator.join([s for s in self._all_strings(
strip, types=types)])
我不知道你到底想要什么。是否要将“无”或字符串转换为字符串“无”?以下是一个例子:
elif '임차인' and '점유부분' in table.get_text(): #임차인 현황
print(table)
for renters in table.findAll('tr')[1::]:
# print(renters)
for renter_values in renters.findAll('td', ({'class':'center'})):
return_value = renter_values.get_text()
if return_value:
print("It is \n" + return_value)
registration_of_businessman = renters.findAll('td', ({'class': 'left'}))[0]
etc = renters.findAll('td', ({'class': 'left'}))[1]
rental_fee = renters.find('td', ({'class': 'money'}))
在检查beautifulSoup get_text方法时,我发现如果此方法没有捕获到任何值,则此方法将返回一个'
。它在字符串分隔符上使用.join()
函数。因此,该方法返回的空字符串是正确的。如果确实需要None
赋值,则在return\u赋值下添加一行,如:return\u value=return\u value If len(return\u value)>0 else None
代码如下:
def get_text(self, separator=u"", strip=False, types=(NavigableString, CData)):
"""
Get all child strings, concatenated using the given separator.
"""
return separator.join([s for s in self._all_strings(
strip, types=types)])
出现空值,因为在叶标记中找到了空格 您必须对“仅空白字符串”进行筛选,如下所示
for renter_values in renters.findAll('td', ({'class':'center'})):
if renter_values.get_text().strip():
print("It is \n" + renter_values.get_text())
出现空值,因为在叶标记中找到了空格 您必须对“仅空白字符串”进行筛选,如下所示
for renter_values in renters.findAll('td', ({'class':'center'})):
if renter_values.get_text().strip():
print("It is \n" + renter_values.get_text())
如果要将空字符串转换为
None
,可以使用(renter\u values.get\u text()或None)
。'임차인' 而且
表达式的一部分是多余的。它可以在不改变表达式含义的情况下删除。如果您想测试两个字符串是否都存在,则需要使用不同的表达式。谢谢您的回答。我在代码中添加“或无”,比如renter_值。get_text().strip()或无。但它返回空字符串。为什么?如何修复它?如果要将空字符串转换为None
,可以使用(renter\u values.get\u text()或None)
。'임차인' 而且
表达式的一部分是多余的。它可以在不改变表达式含义的情况下删除。如果您想测试两个字符串是否都存在,则需要使用不同的表达式。谢谢您的回答。我在代码中添加“或无”,比如renter_值。get_text().strip()或无。但它返回空字符串。为什么?我要如何修复它?我想将空字符串转换为无。谢谢你的回答。上面的不起作用没问题:)你是说我的代码不起作用(因为它在上面)还是其他答案不起作用?在python中,None
将在条件中给你一个False
语句。像''
这样的空字符串也会给您一个False
语句。如果您确实需要None
可以在return\u值赋值下面添加一行:return\u值=return\u值If len(return\u值)>0否则无
检查beautifulSoup get\u text()方法,您可以看到如果没有catch值,该方法将返回'
,因为它在字符串分隔符上使用.join函数。我会在回答中添加方法谢谢~~选择太迟了,因为我正忙于工作。你太棒了!!祝你过得愉快~~我想把空字符串转换成无。谢谢你的回答。上面的不起作用没问题:)你是说我的代码不起作用(因为它在上面)还是其他答案不起作用?在python中,None
将在条件中给你一个False
语句。像''
这样的空字符串也会给您一个False
语句。如果您确实需要None
可以在return\u值赋值下面添加一行:return\u值=return\u值If len(return\u值)>0否则无
检查beautifulSoup get\u text()方法,您可以看到如果没有catch值,该方法将返回'
,因为它在字符串分隔符上使用.join函数。我会在回答中添加方法谢谢~~选择太迟了,因为我正忙于工作。你太棒了!!祝你今天愉快~~