利用json模块的dumps()函数和loads()函数可以实现Python对象和JSON数据之间的转换,这两个函数的具体功能如表8-3所示。
表8-3 json模块中的函数
Python对象与JSON数据转换时,它们的数据类型会发生改变,接下来通过一张表来罗列Python对象与JSON数据的类型对照,具体如表8-4所示。
表8-4 Python对象与JSON数据转化时的类型对照表
使用json模块前需先在程序中导入该模块,下面分别来演示dumps()和loads()函数的用法。
1.dumps()函数
使用dumps()函数对Python对象进行转码,具体示例如下:
>>> import json
>>> pyobj = [[1, 2, 3], 345, 23.12, 'qwe1, ('key11:(1,2,3), 'key21:(2,3,4)),
True, False, None]
>>> jsonstr = json.dumps(pyobj)
>>> print(jsonstr)
[[1, 2, 3], 345, 23.12, "qwe", {"key1": [1, 2, 3], "key2": [2, 3, 4]},
true, false, null]
以上代码首先定义了Python对象pyobj,其次通过dumps()函数将该对象转换为JSON字符串,之后通过print()函数打印了JSON字符串。
2.loads()函数
以上述示例生成的JSON数据jsonstr为例,使用loads()函数将JSON数据转换为符合Python语法要求的数据类型,具体代码如下:
>>> pydata = json. loads(jsonstr)
>>> print (pydata)
[[1, 2, 3], 345, 23.12, 'qwe', {'key11: [1, 2, 3], 'key21: [2, 3, 4]}, True,False, None]