10:处理 json
json 通用的数据类型, 所有的语言都认识。json 是字符串。key-value 必须使用双引号
1. loads() 和 dumps() 的使用
- json.loads() 将 json 字符串转换成字典。
- json.dumps() 将字典转换成 json 字符串。
s = '''{
"error_code":0,
"stu_info":[
{
"id":100,
"name":"小明"
},
{
"id":202,
"name":"小黑"
}
]
}
'''
# json格式校验网址 www.bejson,com
import json
res = json.loads(s) # json 字符串转成字典
print(res)
print(type(res))
stus = {'test1':'', 'test2':'', '中文':'中文test'}
res2 = json.dumps(stus, ensure_ascii=False) # 字典转成 json. 如果有中文,设置ensure_ascii=False
print(res2)
print(type(res2))
res3 = json.dumps(stus, indent=4) # indent 设置缩进
print(res3)
# 输出结果:
{'error_code': 0, 'stu_info': [{'id': 100, 'name': '小明'}, {'id': 202, 'name': '小黑'}]}
<class 'dict'>
{"test1": "", "test2": ""}
<class 'str'>
在处理 MD5 加密的时候经常需要使用 json.dumps() 方法将字典转换成 json 字符串。上面的运行结果可以看到转换成 json 时冒号后面有个空格,这会导致加密结果不一致。所以在转换的时候需要加个参数 separators=(',',':'),代码如下:
res2 = json.dumps(stus, separators=(',',':'),ensure_ascii=False) # 字典转成 json. 如果有中文,设置ensure_ascii=False
print(res2)
#输出结果:
{"test1":"","test2":"","中文":"中文test"}
2. json.loads() 、json.load() 的区别
# load 和 loads 的区别:
# loads 传的是个字符串
f = open('stus.json', encoding='utf-8')
content = f.read() # read()获取的是一个字符串对象
user_dic = json.loads(content) # 使用字符串作为参数
print(user_dic) # load 传的是个文件对象
f = open('stus.json', encoding='utf-8')
user_dic = json.load(f) #直接使用文件对象 f 作为参数
print(user_dic)
3. json.dumps()、json.dump() 的区别
# dump 和 dumps 的区别:
# 如果要把字典写进文件里,那么使用 dump
f = open('stus2.json', encoding='utf-8')
json.dump(stus, f, ensure_ascii=False) # 直接把 stus 写进了 stus2.json 文件里
10:处理 json的更多相关文章
- Delphi 10.2 JSON与对象/结构体序列化性能提高100多倍
今天在盒子闲逛,无意中看到有人说XE7自带的Json对象序列化很慢,帖子在这里:http://bbs.2ccc.com/topic.asp?topicid=464378;经过测试的确如此. 但 ...
- 广州.NET微软技术俱乐部微信群有用信息集锦(10) - 大量json数据压缩方案
这是广州.NET微软技术俱乐部微信群有用信息集锦系列的其中一篇文章. 刚才微信群里有人问:“对于大量json数据返回的时候,有用过什么压缩方案吗?” 大家都给与了回答和帮助.包括: 开启gzi ...
- dojo 官方翻译 dojo/json 版本1.10
官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/json.html#dojo-json require(["dojo/json&q ...
- .net core Json字符串的序列化和反序列化通用类源码,并模拟了10万数据对比DataContractJsonSerializer和Newtonsoft性能
我们在开发中Json传输数据日益普遍,有很多关于Json字符串的序列化和反序列化的文章大多都告诉你怎么用,但是却不会告诉你用什么更高效.因为有太多选择,人们往往会陷入选择难题. 相比.NET Fram ...
- iOS 阶段学习第22天笔记(JSON数据格式介绍)
iOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)UR ...
- JSON 和 XML 优缺点的比较
JSON 和 XML 优缺点的比较 1.JSON定义(JavaScript Object Notation) 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换 ...
- json和xml数据的解析
一 json数据 1一条json就像一个对象,也想像OC中的数组,且内嵌了很多键值对字典 {"name" : "jack", "age" : ...
- 关于JS中的JSON
早期,一般是使用XML作为互联网上传输结构化数据的,但由于它解析麻烦,字符冗长,因此被轻量级的JSON所逐渐替代.JSON是JavaScript的一个严格子集,利用了JavaScript中一些模式来表 ...
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List转JSON,JSON转List,JSON转C#对象
一.JSON解析与字符串化 JSON.stringify() 序列化对象.数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象.数组或原始值 ...
- Java 的 JSON 开源类库选择比较(zz)
在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April ...
随机推荐
- [UE4]虚幻4蓝图使用小技巧
不得不说,虚幻的蓝图系统还是非常方便强大的,大大的提高了开发效率.蓝图是一个很成熟的系统,也就有很多隐藏的小技巧,这些技巧谈不上多高深,却可以使人们在使用蓝图时更加得心应手,更加喜爱这个“可视化编程“ ...
- [UE4]控件模板参数
创建的时候就会变成这样了.
- c#特性学习(1)
C#中的特性我认为可以理解为Java中的注解,见名知意,就是描述这个类或是属性的一个信息,是一个语法糖.原理运用的是反射,下面我来演示一下它的原理.其中引用了软谋的代码. 举一个栗子.我们在做code ...
- 常用docker镜像
oracle12c: mkdir -p /path/to/oradata docker run --name oracle12c \ -p 1521:1521 -p 5500:5500 \ -v /p ...
- CRM 2016 设置字体颜色
作者:卞功鑫 ,转载请保留http://www.cnblogs.com/BinBinGo/p/7402809.html setTimeout("window.parent.document. ...
- OpenGL 画出雷达动态扫描效果(二) 非底图
OpenGL 画出雷达动态扫描效果(一)中给出了已一张图片作为底图的雷达扫面程序 如果有漂亮的雷达底图的话,效果应该非常不错的,另外也可以直接手绘雷达框架 效果如下 雷达主体代码 glLineWidt ...
- Round544div3E(1133E)
一.题目链接 https://codeforces.com/problemset/problem/1133/E 二.思路 显然要使用dp,因为中间有部分人不会选取. 令$dp[i][j]$表示在前$i ...
- 入坑机器学习?听听MIT在读博士的AI心得
随着人工智能技术的火热,越来越多的年轻学者正准备投身其中,开启自己的研究之路.和所有其他学科一样,人工智能领域的新人总会遇到各种各样的难题,其中不仅有研究上的,也有生活方面的.MIT EECS 在读博 ...
- java第一次考试
这是我们开学的第一次Java课的考试,考的我有点害怕. 老师说这是给我们在正式上课之前提个醒,确实,我明白了我在学习方面还有多大的差距,确实,就如我高中同学所说的那样,没事就应该往机房跑了. 在上个学 ...
- Missing artifact javax.transaction:jta:jar:1.0.1B
下载https://pan.baidu.com/s/1hsfyj8S到某目录,比如: /Users/yintingting/Downloads 打开terminal,cd /Users/yinting ...