Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python get_text()返回空值。我想把它转换成无_Python_Beautifulsoup - Fatal编程技术网

Python get_text()返回空值。我想把它转换成无

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'}

我正在使用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'})):
            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函数。我会在回答中添加方法谢谢~~选择太迟了,因为我正忙于工作。你太棒了!!祝你今天愉快~~