在Python中如果不为null,如何检查多个变量?

2024-10-04 07:39:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为OpenData编写一个python scraper代码,我有一个问题:如何检查站点中是否没有填充所有值,如果是null,则将值更改为null。在

我的刮板是here。在

目前我正在努力优化。在

我的变量现在看起来像:

    evcisloval = soup.find_all('td')[3].text.strip()
    prinalezival = soup.find_all('td')[5].text.strip()
    popisfaplnenia = soup.find_all('td')[7].text.replace('\"', '')
    hodnotafaplnenia = soup.find_all('td')[9].text[:-1].replace(",", ".").replace(" ", "")
    datumdfa = soup.find_all('td')[11].text
    datumzfa = soup.find_all('td')[13].text
    formazaplatenia = soup.find_all('td')[15].text
    obchmenonazov = soup.find_all('td')[17].text
    sidlofirmy = soup.find_all('td')[19].text
    pravnaforma = soup.find_all('td')[21].text
    sudregistracie = soup.find_all('td')[23].text
    ico = soup.find_all('td')[25].text
    dic = soup.find_all('td')[27].text
    cislouctu = soup.find_all('td')[29].text

和输出:

^{pr2}$

我在谷歌上搜索,但没有成功。在


Tags: 代码text刮板hereallfindscrapernull
2条回答

首先,将变量的配置dict写在以下表格中:

conf = {'evidence_no': (3, str.strip),
        'trade_form': (21, None),
         ...}

也就是说,key是输出键,value是来自soup.find_all('td')的id元组和必须应用于结果的可选函数的元组,None否则。你不需要那些可能混淆其他SO成员的斯拉夫变量名。在

然后迭代conf并填充datadict

另外,在循环之前运行soup.find_all('td')。在

^{pr2}$

这将删除大量重复的代码。更容易维护。在

另外,我不确定字符串"NULL"是写入缺失数据的最佳方式。sqlite不支持Python的真正的None对象吗?在

只要读一下你所附的链接,看来你想要的是

evcisloval = soup.find_all('td')[3].text.strip() or "NULL"

但要小心。你应该只使用字符串。如果or之前的部分为空或False或{},或{},则它们都将被"NULL"替换

相关问题 更多 >