一、概念

json是一种通用的数据类型,任何语言都认识

接口返回的数据类型都是json

长得像字典,形式也是k-v { }

其实json是字符串

字符串不能用key、value来取值,要先转成字典才可以

格式如下:

{"error_code": 0,#要使用双引号,如果是单引号则运行时会报错,可以上网做在线json格式校验

"stu_info": [

{"id": 309,"name": "小白","sex": "男","age": 28,"addr": "河南省济源市北海大道32号","grade": "天蝎座","phone": "18512572946","gold": 100},

{"id": 310,"name": "小白","sex": "男","age": 28,"addr": "河南省济源市北海大道32号","grade": "天蝎座","phone": "18516572946","gold": 100}

]

}

二、json操作

1、json串转成字典:

(1).loads()方法

import json#引用json模块

res=json.loads(s)print(res)#打印字典

print(type(res))#打印res类型

print(res.keys())#打印字典的所有Key

要先读文件,然后再转换:

f=open('stus.json',encoding='utf-8')

content=f.read()#使用loads()方法,需要先读文件

user_dic=json.loads(content)print(user_dic)

(2).load()方法

importjson

f=open('stus.json',encoding='utf-8')

user_dic=json.load(f)print(user_dic)

(3)区别

loads()传的是字符串,而load()传的是文件对象

使用loads()时需要先读文件再使用,而load()则不用

2、字典转成json串:

文件里只能写字符串,但可以把字典转成json串,json串是字符串,可以存到文件里

(1).dumps()方法

stus={'xiaojun':'123456','xiaohei':'7891','abc':'11111'}#先把字典转成json

res2=json.dumps(stus)print(res2)#打印字符串

print(type(res2))#打印res2类型

.dumps()方法:把字典转成json串

with open('stus.txt','w',encoding='utf-8' as f:#打开文件

f.write(res2)#在文件里写入转成的json串

使用.dumps()方法前,要先打开文件,再写入:

stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}

res2=json.dumps(stus,indent=8,ensure_ascii=False)print(res2)

with open('stus.json','w',encoding='utf-8') as f:#使用.dumps()方法时,要写入

f.write(res2)

(2)dump()方法

stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}

f=open('stus2.json','w',encoding='utf-8')

json.dump(stus,f,indent=4,ensure_ascii=False)

(3)区别

.dump()不需要使用.write()方法,只需要写哪个字典、哪个文件即可;而.dumps()需要使用.write()方法写入

如果要把字典写到文件里面的时候,dump()好用;但如果不需要操作文件,或需要把内容存到数据库和Excel,则需要使用dumps()先把字典转成字符串,再写入

(4)dump\dumps参数

.dumps\dump中使用参数indent,为字符串换行+缩进:

res2=json.dumps(stus.indent=4)print(res2)#打印字符串#结果为:

'''{

"xiaojun": "123456",

"xiaohei": "7891",

"lrx": "hailong",

"tanailing": "111111"

}'''

.dumps\dump中使用参数ensure_ascii,为内容输出为中文:

res2=json.dumps(stus,indent=4,ensure_ascii=False)#为False时内容输出显示正常的中文,而不是转码

print(res2)

3、不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。

1、pycharm使用小技巧之分屏:

在python文件上右键——Split Vertically,即可达到分屏效果:

2、pycharm使用小技巧之颜色渲染:

文件为.json结尾时,输出的内容会有染色渲染:

with open('stus.json','w',encoding='utf-8' as f:#打开文件

python使用json_Python之json使用相关推荐

  1. python解析json_python解析json文件

    概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态 ...

  2. python处理json_Python处理JSON

    Python处理JSON (如果阅读效果不佳,可戳这里) 概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列 ...

  3. python生成json_Python 生成json文件

    原博文 2018-04-12 17:00 − 1.数据准备 数据下载 2.python代码 import datetime import os import mssqlhelper ms = mssq ...

  4. python读写json_python 读写json数据

    json 模块提供了一种很简单的方式来编码和解码JSON 数据. 字符串操作 其中两个主要的函数是json.dumps() 和json.loads() ,要比其他序列化函数库如pickle 的接口少得 ...

  5. python操作json_Python学习之利用Python处理JSON格式数据

    最近在研究利用zabbix的自动发现功能来监控一台服务器上的多个Redis端口.网上有篇文章写个Python程序来发现Redis端口并显示成JSON格式.这里就学习下Python如何处理JSON格式数 ...

  6. python中的json_python中json的使用

    在编写接口传递数据时,往往需要使用JSON对数据进行封装.python和json数据类型的转换,看作为编码与解码. 编码:json.dumps() PythonJSON dict object lis ...

  7. python生成json_python之生成多层json结构的实现

    网上关于生成多层json结构的比较少,基本都是关于添加元素,解析,怎么转化为json之类的 下面就以文章信息的json为基础来构建多层json. 生成最基本的一个json: import json a ...

  8. python 对象转换为json_Python Python对象转换成JSON

    1.从Python对象转换成JSON 如果有Python对象,则可以使用json.dumps()方法将其转换为JSON字符串. 例如: 从Python对象转换为JSON:import json # a ...

  9. python爬虫json_python爬虫数据提取一之json

    1 数据提取 什么是数据提取? 简单的来说,数据提取就是从响应中获取我们想要的数据的过程 1.1 数据分类 非结构化数据: html , 文本等 处理方法:正则表达式,xpath语法 结构化数据:js ...

最新文章

  1. python函数isdisjoint方法_Python学习之---Python中的内置函数(方法)(更新中。。。)...
  2. Mybatis JdbcType与Oracle、MySql数据类型对应列表
  3. js二(多)叉树算法
  4. android 局域网聊天工具(可发送文字/语音)
  5. chm文件打不开的原因
  6. 女人,想嫁他,就别跟他同居! (转载自网络)
  7. 史上最全的各种鱼的做法,爱吃鱼的可不要错过哦!
  8. 【计算机网络】吞吐量与瓶颈链路
  9. 应届毕业生(程序员)如何工作更顺利、步步高升
  10. 【计算机网络-带宽与吞吐量】
  11. 一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
  12. CleanMyMacX2023系统清理优化工具使用评测
  13. ASN.1探索 - 3 编码规则与传输语法(3 - PER)
  14. centos mysql ssh连接,使用SSH隧道连接MYSQL
  15. 相关系数之皮尔森相关系数
  16. 欧洲共同语言框架的b2-c1,德语语法A1-A2-B1-B2-C1
  17. linux的C开发工具
  18. 【做题】BZOJ2534 L-gap字符串——调和级数
  19. 2021特种作业操作证电工作业2021电气试验考试题库
  20. LCAMV06-TCD1304线阵CCD模组

热门文章

  1. vrpie在Visio Studio 中无法调试的问题
  2. Communication System--ZOJ 1409
  3. 华尔街日报:微软告别盖茨时代
  4. MFC:VS拖拽多个文件到控件并获取路径
  5. java上传图片特征码到服务器,记一个Base64编码后经网络传输产生的问题
  6. php抓取dom处理后数据,PHP简单DOMDocument抓取排除td类
  7. mysql+服务+监控_mysql从服务器监控
  8. linux 集成调试工具,linux下can调试工具canutils安装过程记录
  9. linux备份能压缩吗,Linux备份与压缩命令
  10. signature=73d4f2b7e55a02359b7d1bf362a074d6,SHOCK ABSORBER