python - 如何从网络抓取中解析空数据框?无类型错误
问题描述
解析数据框中所有抓取结果的代码是:
class GameData:
def __init__(self):
self.date = []
self.time = []
self.game = []
self.score = []
self.home_odds = []
self.draw_odds = []
self.away_odds = []
self.country = []
self.league = []
.....
game_data = GameData()
....
if __name__ == '__main__':
results = None
for url in urls:
game_data = parse_data(url)
result = pd.DataFrame(game_data.__dict__)
if results is None:
results = result
else:
results = results.append(result, ignore_index=True)
有时页面没有任何数据,因此返回数据框NoneType
,我得到错误:
result = pd.DataFrame(game_data.__dict__)
AttributeError: 'NoneType' object has no attribute '__dict__'
如何仅使用定义的标头解析空数据框:
解决方案
您的代码甚至在 Pandas 有机会解析数据之前就中断了:game_data
is None
,因此它不能具有属性 ( __dict__
)。因为不附加任何结果没有效果,所以您可以跳过一个空数据。
for url in urls:
game_data = parse_data(url)
if game_data is None:
continue
...
推荐阅读
- javascript - 在 Electron 中设置 p5.js
- game-maker - 为什么我的变量在 GML 太空岩石教程中是非法未定义的?
- maven-3 - 从 Java 编译路径(类路径)中排除所有传递依赖项?
- laravel - 如何查询与最大数量的三个关系?
- docker - Docker Quasar 项目。如何开始生产
- xml - 2 Xquery 中具有类似 XML 文件和 XMLNS 的问题
- pandas - Pandas:如何重新标记行的索引
- rust - Rust 中的字符串借用和 println 问题
- python - 如何在 ursina 中为 2d 对象添加碰撞检测?
- java - LibGDX 在核心文件夹中使用 java.util.stream.Stream 吗?