解决json中ensure_ascii=False的问题

在使用json.dumps时要注意一个问题

>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"

输出的会是:'中国' 中的ascii 字符码,而不是真正的中文。

这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:

>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
>>> print json.dumps('中国',ensure_ascii=False)
"中国"
>>> 

补充知识:python json.loads json.dumps(ensure_ascii = False) 汉字乱码问题解决

我们在post请求数据时,响应的内容是json数据,但是返回的json数据中文显示有问题,变成 \uXXX的形式。这是因为中文以 unicode 编码了,而默认是以ASCII解析的,中文不在ASCII编码中,所以无法显示。

这时候我们可以用 import json 然后调用json.loads() 和json.dumps()来使中文正确显示。 下面的代码(data是中文不能正常显示的json串,newjson是处理后中文正常显示的字符串)

import json
myjson=json.loads(data) #data是向 api请求的响应数据,data必须是字符串类型的
newjson=json.dumps(myjson,ensure_ascii=False) #ensure_ascii=False 就不会用 ASCII 编码,中文就可以正常显示了

以上这篇解决json中ensure_ascii=False的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python和flask中返回JSON数据的方法

    在python中可以使用json将数据格式化为JSON格式: 1.将字典转换成JSON数据格式: s=['张三','年龄','姓名'] t={} t['data']=s return json.dumps(t,ensure_ascii=False) 2.将列表转换成JSON数据格式: s=['张三','年龄','姓名'] return json.dumps(s,ensure_ascii=False) 使用json转换的在前端显示的数据为JSON字符串. 使用flask的jsonify转换后,在前

  • python中文编码与json中文输出问题详解

    前言 python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 unicode 问题.首先简要介绍字符串编码的历史,其次,讲解 python 对于字符串的处理,及编码的检测与转换,最后,介绍 python 爬虫采取的 json 数据存入文件时中文输出的问题. 参考书籍:Python网络爬虫从入门到实践 by唐松 在python 2或者3 ,字符串编码只有两类

  • python json.dumps中文乱码问题解决

    json.dumps(var,ensure_ascii=False)并不能解决中文乱码的问题 json.dumps在不同版本的Python下会有不同的表现, 注意下面提到的中文乱码问题在Python3版本中不存在. 注:下面的代码再python 2.7版本下测试通过 # -*- coding: utf-8 -*- odata = {'a' : '你好'} print odata 结果: {'a': '\xe4\xbd\xa0\xe5\xa5\xbd'} print json.dumps(odat

  • 解决json中ensure_ascii=False的问题

    在使用json.dumps时要注意一个问题 >>> import json >>> print json.dumps('中国') "\u4e2d\u56fd" 输出的会是:'中国' 中的ascii 字符码,而不是真正的中文. 这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False: >>> import json >>> print jso

  • 解决json日期格式问题的3种方法

    开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后将得到一个很长的数字表示日期数据,如下所示: 复制代码 代码如下: //设置服务器响应的结果为纯文本格式            context.Response.ContentType = "text/plain";           //学生对象集合            List<Student> students = new List<St

  • 解决Keras TensorFlow 混编中 trainable=False设置无效问题

    这是最近碰到一个问题,先描述下问题: 首先我有一个训练好的模型(例如vgg16),我要对这个模型进行一些改变,例如添加一层全连接层,用于种种原因,我只能用TensorFlow来进行模型优化,tf的优化器,默认情况下对所有tf.trainable_variables()进行权值更新,问题就出在这,明明将vgg16的模型设置为trainable=False,但是tf的优化器仍然对vgg16做权值更新 以上就是问题描述,经过谷歌百度等等,终于找到了解决办法,下面我们一点一点的来复原整个问题. trai

  • 解决Python中list里的中文输出到html模板里的问题

    最仅在做一个数据分析的功能时候遇到将list中的中文字符按照数组的形式输出到html模板里的js中进行处理,但是直接输出模板会按照unicode编码输出,这个问题真的让人头大. 本方法实在flask框架里完成的,以下是解决方法,仅供参考. //r_cname保存的是list类型,存储的是中文字符串 print r_cname //输出unicode编码格式,格式如下 [u'\u6e56\u4eba', u'\u7070\u718a', u'\u9ec4\u8702', u'\u70ed\u706

  • 使用HTML5中postMessage知识点解决Ajax中POST跨域问题

    由于同源策略的限制,Javascript存在跨域通信的问题,典型的跨域问题有iframe与父级的通信等.常规的几种解决方法: (1) document.domain+iframe: (2) 动态创建script: (3) iframe+location.hash: (4) flash. postMessage是HTML5为解决js跨域问题而引入的新的API,允许多个iframe/window跨域通信. HTML5中提供了在网页文档之间相互接收与发送信息的功能.使用这个功能,只要获取到网页所在窗口

  • 解决Django中多条件查询的问题

    tags: django中对条件查询 一些cms项目都会使用到多条件查询,我们后端如何处理请求的条件呢? 满足一个条件 满足两个条件 满足多个条件 -------. 这样处理起来会非常的恼火. 其实有多方法比如(传参数,传字典,传Q对象,传F对象-)陷入深深的思考中-怎么用做简单的方法把这个需求解决了. 个人觉得.把我们的查询的所有条件来构建一个字典来查询起来比较高效.具体如何操作见下面的代码: 视图函数. def order_list(request): if request.method =

  • 解决vue中使用proxy配置不同端口和ip接口问题

    问题描述: 使用vue-cli创建的项目,开发地址是localhost:8080,由于后台开发不同的模块,导致每个模块请求的ip和端口号不一致 例如:http://192.168.10.22:8081  或者 http://192.168.10.30:9999等 解决问题: 在vue.config.js中配置不同的端口号 module.exports = { publicPath: process.env.NODE_ENV === 'production' ? './' : '/', devSe

  • 解决FastJson中"$ref重复引用"的问题方法

    解决FastJson中"$ref重复引用"的问题,先来看一个例子吧: public static void main(String[] args) { UserGroup userGroup = new UserGroup().setName("UserGroup"); User user = new User("User"); for (int i = 0; i < 3; i++) { userGroup.addUser(user); }

  • python的json中方法及jsonpath模块用法分析

    本文实例讲述了python的json中方法及jsonpath模块用法.分享给大家供大家参考,具体如下: 什么是json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场景,比如网站前台与后台之间的数据交互. json模块中方法的学习 其中类文件对象的理解: 具有read()或者write()方法的对象就是类文件对象,比如f = open("a.txt",

  • 解决django中form表单设置action后无法回到原页面的问题

    django中form表单设置action后,点提交按钮是跳转到action页面的,比如设置action为login,网址为192.168.1.128,跳转后便会来到192.168.1.128/login,F5刷新也会是重新提交表单对话框,无法回到原页面. 因此就要在django服务器进行重定向,具体就是 from django.shortcuts import redirect #最后返回原页面 return redirect(url) 补充知识:Django + Ajax发送POST表单,并

随机推荐