【摘要】使用 json 保存结构化数据时,字符串可以很轻松地写入文件并从文件中读取出来。数字可能会费点劲,因为 read() 方法只能返回字符串,这些字符串必须传递给类似 int() 的函数,它会接受类似 123 这样的字符串并返回其数字值 123。
当你想保存诸如嵌套列表和字典这样更复杂的数据类型时,手动解析和序列化会变得复杂。
Python 允许你使用称为 JSON (JavaScript Object Notation) 的流行数据交换格式,而不是让用户不断的编写和调试代码以将复杂的数据类型保存到文件中。名为 json 的标准模块可以采用 Python 数据层次结构,并将它们转化为字符串表示形式;这个过程称为 serializing 。从字符串表示中重建数据称为 deserializing 。在序列化和反序列化之间,表示对象的字符串可能已存储在文件或数据中,或通过网络连接发送到某个远程机器。
注解
JSON格式通常被现代应用程序用于允许数据交换。许多程序员已经熟悉它,这使其成为互操作性的良好选择。
如果你有一个对象 x ,你可以用一行简单的代码来查看它的 JSON 字符串表示:
>>>>>> import json
>>> json.dumps([1, 'simple', 'list'])
'[1, "simple", "list"]'
dumps() 函数的另一个变体叫做 dump() ,它只是将对象序列化为 text file 。因此,如果 f 是一个 text file 对象,我们可以这样做:
json.dump(x, f)
要再次解码对象,如果 f 是一个打开的以供阅读的 text file 对象:
x = json.load(f)
以上就是有关于使用 json 保存结构化数据的内容,这种简单的序列化技术可以处理列表和字典,但是在JSON中序列化任意类的实例需要额外的努力。从文中我们不难看出,使用json保存结构化数据实际是一种简化的方法,小编祝您的python学习之路顺利。