章节知识路线
- 14.1 逗号分隔值(CSV)
- 14.2 JSON
- 14.3 可扩展标记语言
- 14.4 参考文献
- 14.5 相关模块
章节主张:文本处理章是在把前面零散能力收束成‘系统边界处理能力’:文件格式、编码、结构和解析方式决定数据能否顺畅流动。
中文释读:CSV、JSON、XML 都不是小知识点,而是不同系统之间交接数据的主干语言。做自动化的人,最终都要成为格式边界的高手。
554 第 3 部分 补充/实验章节 无论创建什么类型的应用,最终都需要处理人类可读的数据,这类数据一般都是文本。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 14.1 逗号分隔值(CSV) 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
554 第 3 部分 补充/实验章节 无论创建什么类型的应用,最终都需要处理人类可读的数据,这类数据一般都是文本。 Python 标准库含有 3 个文本处理模块和包,它们可以完成这个任务:csv、json、xml。 在本章末尾,我们将 XML 与第 2 章中介绍的其他客户端—服务器的知识结合起来,展 示如何使用 Python 创建 XML-RPC 服务。
第 14 章 文本处理 557 for 循环的大部分都相同,除了无须读取整行后用逗号分隔。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 14.2 JSON 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 14 章 文本处理 557 for 循环的大部分都相同,除了无须读取整行后用逗号分隔。 现在使用 csv 模块解析数据, 让用户用循环变量来指定目标字段的名称。 注意,输出结果虽然相似,但并不是精确匹配。
第 14 章 文本处理 561 Programming"}, "0137143419": {"year": 2009, "title": "Python Fundamentals"}, "0132356139": {"authors": ["Jeff Forcier", "Paul Bissex", "Wesley Chun"], "year": 2009, "title": "Python Web Development with Django"}} *** PRETTY_PRINTED JSON *** { "0132269937": { "edition": 2, "year": 2007, "title": "Core Python Programming" }, "0137143419": { "year": 2009, "title": "Python Fundamentals" }, "0132356139": { "authors": [ "Jeff Forcier", "Paul Bissex", "Wesley Chun" ], "year": 2009, "title": "Python Web Development with Django" } } 这个示例演示了从字典转换为 JSON 的方法。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 14.3 可扩展标记语言 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 14 章 文本处理 561 Programming"}, "0137143419": {"year": 2009, "title": "Python Fundamentals"}, "0132356139": {"authors": ["Jeff Forcier", "Paul Bissex", "Wesley Chun"], "year": 2009, "title": "Python Web Development with Django"}} *** PRETTY_PRINTED JSON *** { "0132269937": { "edition": 2, "year": 2007, "title": "Core Python Programming" }, "0137143419": { "year": 2009, "title": "Python Fundamentals" }, "0132356139": { "authors": [ "Jeff Forcier", "Paul Bissex", "Wesley Chun" ], "year": 2009, "title": "Python Web Development with Django" } } 这个示例演示了从字典转换为 JSON 的方法。 也可以将数据从列表或元组转成 JSON 数组。 json 模块还可以为其他 Python 数据类型提供编码和解码(decoding)类,用于与 JSON 互转。
第 14 章 文本处理 573 Latest Google stock price: 570.11 (-9.89 / -1.71%) as of 11/23/2011 at 4:00pm Latest foreign exchange rate from USD to EUR: 0.7491 as of 11/24/2011 at 3:51pm Latest foreign exchange rate from EUR to USD: 1.3349 as of 11/24/2011 at 3:51pm Latest Twitter status: @KatEller same to you!!! :-) we need a celebration meal... this coming monday or friday? have a great thanksgiving!! 尽管本章已到末尾,但仅仅接触到 XML-RPC 和 JSON-RPC 编程的皮毛。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 14.4 参考文献 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
第 14 章 文本处理 573 Latest Google stock price: 570.11 (-9.89 / -1.71%) as of 11/23/2011 at 4:00pm Latest foreign exchange rate from USD to EUR: 0.7491 as of 11/24/2011 at 3:51pm Latest foreign exchange rate from EUR to USD: 1.3349 as of 11/24/2011 at 3:51pm Latest Twitter status: @KatEller same to you!!! :-) we need a celebration meal... this coming monday or friday? have a great thanksgiving!! 尽管本章已到末尾,但仅仅接触到 XML-RPC 和 JSON-RPC 编程的皮毛。 若想了解更多 相关内容,建议通过 DocXMLRPCServer 类来了解自归档的 XML-RPC 服务器,以及从 XML-RPC 服务器能获取的不同类型的数据结构(参见 xmlrpclib/xmlrpc.client 文档)。 14.4 参考文献 网上有许多关于本章内容的文档。
把 14.5 相关模块 放回本章上下文,它更像是 结构化数据交换与系统边界 的一个具体落点。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 14.5 相关模块 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
574 第 3 部分 补充/实验章节 对于想进一步了解的读者,建议阅读 Text Processing in Python(Addison-Wesley, 2003) 一书,这是 Python 文本处理方面的经典。
怎么用:把这节内容转成自己的一个最小脚本、接口实验或系统边界测试,验证它在真实任务中的输入输出。
提醒:最常见的问题是只记住 14.6 练习 的 API 或步骤,却没搞清它的上下游依赖与边界条件。
574 第 3 部分 补充/实验章节 对于想进一步了解的读者,建议阅读 Text Processing in Python(Addison-Wesley, 2003) 一书,这是 Python 文本处理方面的经典。 还有另一本书,名为 Python 2.6 Text Processing (Packt, 2010)。 不 要管书名中的 2.6,其中介绍的内容可用于大多数当前的 Python 版本中。
为什么“只是导个 CSV/JSON/XML”常常变成排错黑洞?