【发布时间】:2021-04-28 22:29:43
【问题描述】:
基本上我是抓取一个网站并将结果保存在一个变量中。假设我的代码中有这个:
worldPopulation = [scraping and such]
现在“worldPopulation”变量有这个内容:
545.452.432.675
世界总人口
注意:var 的上方和下方都有一个空白行。所以两行全是空白。
我一直在尝试提取数字并将它们解析到 SQLite3 数据库。我使用 INT 作为数据类型,我已经尝试过:
re.findall(r'\b\d+\b', worldPopulation)
还有
re.findall(r'\d+', worldPopulation)
两者都给了我错误,它们是:
Line 241, in find all
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object
有谁知道如何从变量中检索该数字?它以百万为单位,所以我真的不想将数字分成 4 组,每组 3 个数字,只是想要它作为一个整体。
【问题讨论】:
-
变量包含字符串。一样。你得到什么错误?要精确。第一个示例需要数字两侧的空格,而您没有。第二个应该分别抓住四个数字。
-
您遇到什么错误?正则表达式看起来不错。
-
请提供更完整的示例。您说“两者都给了我错误”,但取决于
worldPopulation的定义方式,情况并非如此(尽管数字不包括句点)。请提供与其内容的实际类型相匹配的worldPopulation的定义 -
我怀疑问题在于
worldPopulation实际上并不包含字符串。添加创建该变量的代码。 -
仅供参考,它是 scrape(和 scrape、scraper、scraped)不是报废