返回介绍

5.6 小结

发布于 2024-01-27 21:43:11 字数 2769 浏览 0 评论 0 收藏 0

PDF 以及其他难以解析的格式,是你会遇到的最糟糕的格式。如果你找到这些格式的数据,应该做的第一件事就是看能否找到其他格式的数据。对于我们的例子来说,我们从 CSV 格式得到的数据更为精确,因为 PDF 表格中的数字是经过四舍五入的。越是原始的数据格式,数据可能就越精确,用代码解析也越容易。

如果找不到其他格式的数据,那你应该尝试以下步骤。

(1) 确定数据类型。

(2) 在互联网上搜索其他人解决问题的方法。有没有帮助导入数据的工具?

(3) 凭直觉选择你要用的工具。如果是 Python,选择你认为最合适的库。

(4) 尝试将数据转换成更容易使用的格式。

表 5-1 列出了我们在本章学过的库和工具。

表5-1:新的Python库和工具

库或工具

作用

slate

每次运行脚本时,都将 PDF 解析为内存里的一个字符串

pdfminer

将 PDF 转换为文本,这样你就可以解析文本文件

pdftables

首先用 pdfminer 将 PDF 解析成文本,然后尝试寻找表格,并将每一行内容对齐

Tabula

提供操作界面,可以将 PDF 数据提取成 CSV 格式

除了上面这些新工具,我们还学习了 Python 编程的一些新概念,表 5-2 对这些新概念做了汇总。

表5-2:Python编程新概念

概念

作用

转义字符(http://learnpythonthehardway.org/book/ex10.html

转义字符告诉计算机,文件路径或文件名中有一个空格或特殊字符,告知方式是在其前面加一个反斜线(\)。一种用法是在空格前加 \ 将其转义

\n

\n 是文件中行尾或新行的标志

elif(https://docs.python.org/2/tutorial/controlflow.html

在写 if-else 语句的过程中,我们可以添加额外的条件再次测试:if...elif...elif...else

函数(https://docs.python.org/2/tutorial/controlflow.html#defining-functions

Python 函数用来执行一段代码。将可复用的代码写成函数,我们可以避免多次重复

zip(https://docs.python.org/2.7/library/functions.html#zip

zip 是 Python 内置函数,将两个可迭代对象转换成由元组构成的列表

元组(https://docs.python.org/2.7/library/functions.html#tuple

元组和列表类似,但是不可更改(immutable),也就是说,不能修改元组。想修改一个元组,需要将其保存为一个新对象

dict 转换(https://docs.python.org/2.7/library/functions.html#func-dict

dict 是 Python 内置函数,将输入转换成字典。输入数据应满足键值对的形式,这样函数才能正常运行

下一章我们将讨论数据获取与存储。这样我们就能了解关于获取其他数据格式的更多内容。在第 7 章和第 8 章,我们会讲到数据清洗,这也对我们处理复杂的 PDF 有所帮助。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文