json是一种所有语言都通用的Key-Value数据结构的数据类型,很像Python中的字典,在Python中可以通过json模块对json串和字典进行转换。

1、把字典转换成json串

 import json
dic = {'zll':{
'addr':'北京','age':28},
'ljj':{
'addr':'北京','age':38}
}
res = json.dumps(dic,ensure_ascii=False,indent=5) # 把字典转成json串
# ensure_ascii=False 中文显示为中文,不加的话中文显示为encode编码
# indent=5 缩进5格
print(res)

 2、把字典转换成json并写入文件(json.dumps)

 import json
dic = {
'zll':{
'addr':'北京',
'age':28
},
'ljj':{
'addr':'北京',
'age':38
}
}
fw = open('user_info.json','w',encoding='utf-8') # 打开一个文件
dic_json = json.dumps(dic,ensure_ascii=False,indent=5) # 字典转成json
fw.write(dic_json) # 写入文件

3、json.dump自动写入文件

 import json
dic = {
'zll':{
'addr':'北京',
'age':28
},
'ljj':{
'addr':'北京',
'age':38
}
}
fw = open('user_info.json','w',encoding='utf-8') # 打开一个文件
dic_json = json.dump(dic,fw,ensure_ascii=False,indent=4) # 字典转成json,直接操作文件,不用写入操作

4、使用json.loads将文件中的json串转换成字典

 import json
f = open('user_info.json',encoding='utf-8')
res = f.read() # 使用json.loads需要先读文件
product_dic = json.loads(res) # 把json串转换成字典
print(product_dic)

5、使用json.load不用先读文件,直接使用就可以

 import json
f = open('user_info.json',encoding='utf-8')
product_dic = json.load(f) # 传一个文件对象,它会帮你读文件
print(product_dic)

6、读取/写入文件内容函数

 import json
def op_data(filename,dic=None):
if dic: # dic不为空时,写入文件
with open(filename,'w',encoding='utf-8') as fw:
json.dump(dic,fw,ensure_ascii=False,indent=4)
else: # dic为空时,读取文件内容
with open(filename, 'r', encoding='utf-8') as fr:
return json.load(fr)

Python学习之==>json处理的更多相关文章

  1. python 学习(json)(转)

    Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式.Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式.现在也常用于h ...

  2. Python学习之json序列化

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

  3. Python学习 :json、pickle&shelve 模块

    数据交换格式 json 模块 json (JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读.尽管 json 是JavaScript的一个子 ...

  4. python学习-49 json模块

    json模块 --------将任何类型都转换为json字符串 方法dumps import json dic={"name":"abc"} data = js ...

  5. python学习第四十八天json模块与pickle模块差异

    在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int st ...

  6. python模块学习之json

    更多信息请参考官网地址: https://docs.python.org/3.6/library/json.html 19.2. json - JSON编码器和解码器 Source code: Lib ...

  7. Python学习笔记:json模块和pickle模块(数据序列化)

    Python中的json模块和pickle都是用于数据的序列化和反序列化,它们提供的方法也是一样的:dumps,dump,loads,load dumps(obj):将对象序列化为str. dump( ...

  8. Python 学习 第16篇:数据类型(字典和Json)

    字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象. 字典有两个重要的特征: 字典是无序的,字典项没有特定的顺序,只能通过键来获取值: 字典是可变的,支持原处修改 ...

  9. 吴裕雄--天生自然python学习笔记:Python3 JSON 数据解析

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进 ...

随机推荐

  1. C++有静态成员变量的类继承

    声明和定义 1.变量的定义 变量的定义用于为变量分配存储空间,还可以为变量指定初始值.在一个程序中,变量有且仅有一个定义. 2.变量的声明 用于向程序表明变量的类型和名字.程序中变量可以声明多次,但只 ...

  2. Delphi 标识符

  3. 配置 http 反向代理

    [root@nginx ~]# cd /etc/nginx/ 1 [root@nginx nginx]# cp nginx.conf nginx.conf.bak #备份一个原配置文件 2 [root ...

  4. nacos集群搭建

    nacos介绍 Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心).动态配置服务(可以做配置中心).动态 DNS 服务. 1.从官网下载nacos压缩 ...

  5. 查个远程桌面是否开启 debug版360报毒 release 不报毒

    360 真tm流氓一个

  6. LAMP 系统性能调优之内核调优措施

    LAMP 系统性能调优之内核调优措施 2011-03-18 11:21 Sean A. Walberg 网络转载 字号:T | T 在对系统的 Apache.PHP 和 MySQL 组件进行调优之前, ...

  7. Puppet利用Nginx多端口实现负载均衡

    随着公司应用需求的增加,需要不断的扩展,服务器数量也随之增加,当服务器数量不断增加,我们会发现一台puppetmaster压力大,解析缓慢,而且时不时出现"time out"之类的 ...

  8. SP Flash Tool版本对应MTK处理器型号(SP Flash Tool 版本速查)

    SP Flash Tool v3.1224.0.100 MT6516,MT6573,MT6573,MT6575,MT6575,MT6577, SP Flash Tool v3.1332.0.187 M ...

  9. Springboot(2.0.0.RELEASE)+spark(2.1.0)框架整合到jar包成功发布(原创)!!!

    一.前言 首先说明一下,这个框架的整合可能对大神来说十分容易,但是对我来说十分不易,踩了不少坑.虽然整合的时间不长,但是值得来纪念下!!!我个人开发工具比较喜欢IDEA,创建的springboot的j ...

  10. linux常用的镜像(centos、kali、redhat等)官方下载地址

    常用的linux版本: Redhat:https://developers.redhat.com/topics/linux/ Centos:https://www.centos.org/downloa ...