如何将一个json文档映射成一个Python对象?如何实现JSON文档与Python对象互换?

这篇文章主要介绍了如何将一个json文档映射成一个Python对象?如何实现JSON文档与Python对象互换?通过对将一个JSON文档映射为Python对象问题的展开介绍主题内容,需要的朋友可以参考一下,希望给大家的学习带来一定的帮助 。

如何将一个json文档映射成一个Python对象?如何实现JSON文档与Python对象互换?

文章插图
对于json文档转换成一个Python对象的问题,一般在loads函数中使用的比较多,我们下面就是使用的loads函数进行操作,同时它也是一个经常在面试中出现的问题,它的转换方式可以分成两种,下面一一为大家讲解 。
方法一:现在假设我们有一个json文件,文件名叫“hh.json”,文件内容如下:
{  "name": "小王",  "age": 19,  "height": 180}操作实例:# coding=utf-8import jsonclass Product:    def __init__(self, c):        self.__dict__ = cwith open('hht.json', 'r', encoding='utf-8') as f:    jsonStr = f.read()    product = json.loads(jsonStr, object_hook=Product)    print(type(product))    print(product.name)在这个案例中,我们首先做的第一件事情是通过json模块中的loads方法对它进行类型的转换,然后在转换的同时,对一个Product对象进行创建,使用构造函数的方法作为Python对象中的第二个参数,也就是c,这个c包含的就是一个json中的字典对象,我们又将一个d的方法赋值给了一个_dict_,就相当于是将一个属性值赋值给了一个属性,所以最后就可以将一个json文档转换成一个Python对象 。
方法二:不需要使用对象钩子进行一个对类的指定,而是直接使用一个转换函数,通过这个函数就可以对一个对象进行返回操作 。
举个例子:
# coding=utf-8import jsonclass Product:    def __init__(self, c):        self.__dict__ = cwith open('test.json', 'r', encoding='utf-8') as f:    jsonStr = f.read()    def json2Product(c):        return Product(c)    product1 = json.loads(jsonStr, object_hook=json2Product)    print(type(product1))    print(product1.name)在json中包含的这个loads函数,它可以直接对一个json文件进行操作,并且转换成一个json对象,同时它需要一个参数object_hook参数对一个钩子对象进行指定,然后再进行操作 。
【如何将一个json文档映射成一个Python对象?如何实现JSON文档与Python对象互换?】到此这篇关于如何将一个json文档映射成一个Python对象?如何实现JSON文档与Python对象互换?的文章就介绍到这了,更多相关JSON映射内容可以继续关注学习 。

    推荐阅读