今天又网友问到, 在python 下将一个对象序列化成 json 时经常会报乱码, 甚至会报错, 的确会出现这种情况,因为在python 中默认使用的是 simplejson 库。但其实是可以通过配置选项解决的, 下面是我写的一个公共的转换对象到json与从json 转换到对象的公共类:# -*- coding=utf-8 -*-

import json

from datetime import date, datetime

import decimal

class DecimalEncoder(json.JSONEncoder):

def default(self, o):

if isinstance(o, decimal.Decimal):

return float(o)

return super(DecimalEncoder, self).default(o)

class JsonUtil:

def __default(self,obj):

if isinstance(obj, datetime):

return obj.strftime('%Y-%m-%d %H:%M:%S')

elif isinstance(obj, date):

return obj.strftime('%Y-%m-%d')

else:

raise TypeError('%r is not JSON serializable' % obj)

def parseJsonObj(self,obj):

jsonstr=json.dumps(obj,default=self.__default,ensure_ascii=False) #cls=DecimalEncoder

return jsonstr

def parseJsonString(self,jsonstring):

obj=json.loads(jsonstring)

return obj

if __name__ == '__main__':

pass

在使用的时候,你可以这样使用:

jsonUtil=JsonUtil()

retstr=jsonUtil.parseJsonObj(retobj)

这里的 retobj 是一个 python 字典dict 对象. 采用这种方式,就可以避免报错和乱码了,其实很重要的一点大家可以发现就是这里: jsonstr=json.dumps(obj,default=self.__default,ensure_ascii=False), ensure_ascee=False.

python转json中文乱码_python 序列化成json 乱码问题的解决相关推荐

  1. python json解析方法_Python 中的 JSON 方式讲解

    Python的dict对象可以直接序列化为JSON的{},不过,很多时候,我们更喜欢用class表示对象,比如定义Student类,然后序列化,代码如下:import json class Stude ...

  2. java 序列化成xml文件_将Java对象序列化成JSON和XML格式

    1.先定义一个Java对象Person: public class Person { String name; int age; int number; public String getName() ...

  3. python 数据库查询序列化_python-将sqlalchemy类序列化为json

    我正在尝试将sqlalchemy查询的结果(列表)序列化为json. 这是课程: class Wikilink(Base): __tablename__='Wikilinks' __table_arg ...

  4. Java对象序列化乱码6_对象序列化成字符串乱码解决

    问题描述: 将一个对象序列化成字符串后,字符串是乱码的,并且反序列化报错. 代码如下: import com.alibaba.fastjson.JSONObject; import org.sprin ...

  5. [原创]一种自动地将继承自NSObject的自定义类序列化成JSON的方法

    最近因为项目需求,需要将一些自定义的类序列化为JSON,网上有很多好用的第三方序列化工具,但都只能序列化一些基本类型,如NSNumber,NSString与NSDictionary这种,没有一种第三方 ...

  6. python json序列化对象_Python学习之json序列化

    一.什么是序列化 在我们存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和传输的数据格式.这个过程叫序列化,不同的序列化结果也不同,但目的是一样的,都是为了存储和传输 在 ...

  7. 对象序列化成JSON格式

    json是一种轻量级的数据交换语言,将对象序列化为json格式,可以在网络上传输,且各个平台都有成熟的工具,可以很快的将json反序列化为对应语言所需要的格式. 将java对象序列化为json格式关键 ...

  8. python安装文件乱码_python输出到文件乱码如何解决

    python代码文件的编码 py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character.需要在代码 ...

  9. python 字符串去重从小到大排列_python 序列(字符串、字符串、元组、集合、字典)...

    运行环境:python3.8 Anaconda 字符串 在python中,单个字符就是字符串. 字符串不可改变,使用单引号' ',双引号" ",三引号'" "' ...

最新文章

  1. Cuda Stream流 分析
  2. VS2010 LNK1123:转换到 COFF期间失败:文件无效或损坏”的解决方法
  3. 思科交换机和路由器的远程配置
  4. 东鹏马桶上水下水之谜
  5. SAP UI5页面动画效果的实现,实际借用了jQuery的库文件
  6. 【原创】C#中的抽象类(abstract class)和接口(interface)的比较
  7. baidumap vue 判断范围_懂一点前端—Vue快速入门
  8. data layui table 排序_浅谈layui中table的sort排序
  9. MongoDB(五)-- 副本集(replica Set)
  10. 关于ASP.NET与CLR相互关系的一些总结
  11. JadClipse反编译工具在MyEclipse中的安装(先看Eclipse的配置方式)
  12. Linux命令解释之useradd,userdel,usermod
  13. Tomcat6升级到Tomcat9
  14. Python爬虫系列(二)——Python爬虫批量下载百度图片
  15. 计算机如何更改键盘设置在哪里设置,原神pc按键怎么改
  16. Java的中文转换拼音、五笔简码
  17. RST 和 Markdown
  18. 智能照明控制系统在城市夜景照明工程中的应用
  19. Unity3D Linear和Gamma渲染
  20. 我滴python第一周笔记

热门文章

  1. outlook删除web邮件服务器,从Outlook中删除 Web 邮箱策略Exchange Online
  2. 苏宁大数据怎么运营_苏宁易购的经营模式
  3. python微信头像_转:20行Python代码给微信头像戴帽子
  4. Python爬虫实战:应用宝APP数据信息采集
  5. 《一段代码告诉你,Python的正则表达式怎么用》
  6. 数据结构与算法之-----二叉树(一)
  7. android 增删改查错误,安卓中使用HttpURLConnection进行增删改查操作(包括后端讲解)(一)...
  8. opencv批量灰度转换_OpenCV图像处理之常见的图像灰度变换
  9. 3P新产品开发管理实务
  10. mongorepository查询条件_Java操作MongoDB采用MongoRepository仓库进行条件查询 | 学步园...