前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的json模块

python中的json模块

作者头像
py3study
发布2020-01-07 15:52:01
1.3K0
发布2020-01-07 15:52:01
举报
文章被收录于专栏:python3

json模块

JSON就是JavaScript Object Notation,这个模块完成了python对象和JSON字符串的互相转换! json是一种很多语言支持的通用语言

作用:如下,作为一个桥梁 在api接口中数据调用传输中常用

php数据类型 <----> json格式  <--->  python

java数据类型 <----> json格式  <----> python

Mysql Text类型 <----> json格式  <----> python

json和python 字符类型的对比

代码语言:javascript
复制
     |  +-------------------+---------------+
     |  | Python            | JSON          |
     |  +===================+===============+
     |  | dict              | object        |
     |  +-------------------+---------------+
     |  | list, tuple       | array         |
     |  +-------------------+---------------+
     |  | str, unicode      | string        |
     |  +-------------------+---------------+
     |  | int, long, float  | number        |
     |  +-------------------+---------------+
     |  | True              | true          |
     |  +-------------------+---------------+
     |  | False             | false         |
     |  +-------------------+---------------+
     |  | None              | null          |
     |  +-------------------+---------------+

用途场景1:

wKioL1cbTYvDLs6SAABORLwq_r8432.png
wKioL1cbTYvDLs6SAABORLwq_r8432.png

一 、dumps函数

案例一: (案例只为演示效果)

cuizhiliangdeMacBook-Air:test cuizhiliang$ cat 1.py 

代码语言:javascript
复制
#!/usr/bin/env python
#encoding=utf8
import json
d = {'name':"张三", 'age':24, '有病': False }
print json.dumps(d)

结果:

代码语言:javascript
复制
cuizhiliangdeMacBook-Air:test cuizhiliang$ python  1.py 
{"age": 24, "\u6709\u75c5": false, "name": "\u5f20\u4e09"}

案例二: 参数的效果:

代码语言:javascript
复制
#!/usr/bin/env python
#encoding=utf8
import json
d = {'name':"张三", 'age':24, '有病': False }
print json.dumps(d, ensure_ascii=False, indent=4, sort_keys=True)

结果:

代码语言:javascript
复制
{
    "age": 24, 
    "有病": false, 
    "name": "张三"
}

常用参数:

ensure_ascii 默认是True,字符编码格式

sort_keys   是否对齐

indent=4  缩进问题

二、dump 和load函数,常用在文件流读中的用途场景1 用途,就像pickle这个模块的功能一样

json dump函数 将数据已sjon格式写入文件流中

cuizhiliangdeMacBook-Air:test cuizhiliang$ cat  test_json_dump.py 

代码语言:javascript
复制
#!/usr/bin/env python
#encoding=utf8
import json
f = file('file.json', 'w')
d = {'name':"张三", 'age':24, '有病': False }
json.dump(d, f, ensure_ascii=False, indent=4, sort_keys=True)

cuizhiliangdeMacBook-Air:test cuizhiliang$ python  test_json_dump.py 

存入文本结果:

cuizhiliangdeMacBook-Air:test cuizhiliang$ cat file.json 

{

    "age": 24, 

    "name": "张三", 

    "有病": false

}

区别json dumps 实现,dumps当然不是处理文件流的咯,要通过文件的write功能写入文件中

等价于:

cuizhiliangdeMacBook-Air:test cuizhiliang$ cat test_json_dumps.py 

代码语言:javascript
复制
#!/usr/bin/env python
#encoding=utf8
import json
f = file('file.json', 'w')
d = {'name':"张三", 'age':24, '有病': False }
f.write(json.dumps(d, ensure_ascii=False, indent=4, sort_keys=True))

json load 从文件流中读取json数据

cuizhiliangdeMacBook-Air:test cuizhiliang$ cat test_json_load.py

代码语言:javascript
复制
#!/usr/bin/env python
# encoding: utf-8
import json
f = open('file.json', 'r')
d = json.load(f)
print type(d)
print d

cuizhiliangdeMacBook-Air:test cuizhiliang$ 

cuizhiliangdeMacBook-Air:test cuizhiliang$ python test_json_load.py 

代码语言:javascript
复制
<type 'dict'>
{u'age': 24, u'\u6709\u75c5': False, u'name': u'\u5f20\u4e09'}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档