美文网首页Python
Python基础(32) - 将类的实例转换成JSON字符串

Python基础(32) - 将类的实例转换成JSON字符串

作者: xianling_he | 来源:发表于2020-03-07 17:50 被阅读0次

将类的实例转换成JSON字符串

将一个对象类型转换成JSON字符串

  • 创建一个类
  • 并将类进行实例化,传入参数使用
import json


class Product:
    def __init__(self,name,price,count):
        self.name = name
        self.price = price
        self.count = count


product = Product('iPhonex',5000,3)
  • 创建一个字典类转换函数,用来返回所有值
def productToDict(obj):
    return{
        'name':obj.name,
        'price':obj.price,
        'count':obj.count
    }
  • 将类转成JSON并打印
jsonStr = json.dumps(product,default=productToDict,ensure_ascii=False)
print(jsonStr)
hexianling.png

完整代码如下:

  • ensure_ascii=False: 默认值是True, 如何是True会中文有乱码
class Product:
    def __init__(self,name,price,count):
        self.name = name
        self.price = price
        self.count = count


product = Product('iPhonex',5000,3)

def productToDict(obj):
    return{
        'name':obj.name,
        'price':obj.price,
        'count':obj.count
    }

jsonStr = json.dumps(product,default=productToDict,ensure_ascii=False)
print(jsonStr)

将转换函数返回的JSON串,重新转换成JSON类型字符串

  • 创建类,将函数转成字典
class Product:
    def __init__(self,d):
        self.__dict__ = d #将属性传给构建的字典
  • 读取json文件中的内容
f = open('C:\\PyTest\\Selenium_OpenSchools\\test_selenium\\03-数据存储\\files\\product.json','r')
jsonStr1 = f.read()
  • 将JSON串中的内容转成字典类型值
products1 = json.loads(jsonStr1,object_hook= Product)
print(products1)
  • 使用dumps函数将内容重新输出,显示格式JSON
jsonStrNew = json.dumps(products1,default=productToDict,ensure_ascii=False)
print(jsonStrNew)

完整代码如下:

import json
def productToDict(obj):
    return{
        'name':obj.name,
        'price':obj.price,
        'count':obj.count
    }

class Product:
    def __init__(self,d):
        self.__dict__ = d #将属性传给构建的字典

f = open('C:\\PyTest\\Selenium_OpenSchools\\test_selenium\\03-数据存储\\files\\product.json','r')
jsonStr1 = f.read()
hexianling.png

总结

json模块的dumps用于将对象转成jsom字符串,通过default参数指定一个转换函数,可以在该函数中提取对象的属性值,并生成JSON对象,最后dumps负责将转换函数返回的JSON对象转成JSON字符串

加油 2020-3-7

相关文章

  • Python基础(32) - 将类的实例转换成JSON字符串

    将类的实例转换成JSON字符串 将一个对象类型转换成JSON字符串 创建一个类 并将类进行实例化,传入参数使用 创...

  • JSON库

    JSON库将json对象或节点转换成字典、将json数组转换成列表、将json字符串转换成python字符串,tr...

  • 编码问题

    将unicode转换成字符串,即json.dumps(xxx),Python读取的字符串已经是unicode编码,...

  • python json的dumps与loads

    encoding:把一个Python对象编码转换成Json字符串decoding:把Json格式字符串解码转换成P...

  • web应用框架——Django基础知识+路由详解

    一.基础知识 1.模型类实例方法: str():在将对象转换成字符串时会被调用。 save():将模型对象保存到数...

  • php3

    1. json_decode() 将json格式字符串转换成对象 json_encode() 将对象转换成json...

  • python3 将字典,列表等转换成字符串形式存入mysql数据

    我用的数据库版本太低,不能直接存入json,遂将原来json格式的文件转换成字符串 并用python自带的方法--...

  • fastjson包常见操作操作

    fastjson包是阿里巴巴开源的优秀开源的json包库 将任何对象转换成json字符串 将 json字符串转成 ...

  • Python——JSON

    json.loads() json.loads 用于解码 JSON 数据,将Json格式字符串解码转换成Pytho...

  • json、多任务

    json json.loads() : 将json字符串转化为Python数据类型json.dumps() : 将...

网友评论

    本文标题:Python基础(32) - 将类的实例转换成JSON字符串

    本文链接:https://www.haomeiwen.com/subject/fbacdhtx.html