pythonjson中list操作_Python中json的简单读写操作
Python中json的简单读写操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JSON在python中分别由list和dict组成。
这是用于序列化的两个模块:
json: 用于字符串和python数据类型间进行转换
pickle: 用于python特有的类型和python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
json 中dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中 loads把字符串转换成数据类型 load把文件打开从字符串转换成数据类型
json是可以在不同语言之间交换数据的,而pickle只在python之间使用。json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),如果是日期格式、类对象!josn就不行了,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。本文主要讲解json的用法.
1 读取json文件
代码如下:
importjson
file_name= "json.json"
try:
with open(file_name,"r",encoding="utf-8")as josn_file_handle:
json_obj=json.load(josn_file_handle)
print(type(json_obj))#json的标准/常用格式:第一层一般是{},第二层一般是字符串/列表/字典
#json的基本格式:最外层一般是[],第二层一般是{},第三层一般是字符串/列表/字典
print (json_obj['data']['tip'])
data_list=json_obj['data']['data']for duanzi indata_list:
duanzi_content=duanzi['group']['text']print(duanzi_content)print ("*"*50)except FileExistsError as e: #python3的语法
print ("py3文件不存在")except IOError as e: #python2的语法
print ("py2文件不存在")exceptJSONDecodeError as e:print ("JSON文件解码错误(数据格式不正确|没有内容)")
我写的是使用的python3环境, 如果是python2, print 后面无需使用()
2 将内容写入json文件
代码如下:
importjson
file_name= "user.txt"
try:
a1=dict()
a1['姓名'] = "张三"a1['年龄'] = 20a1['爱好'] = ["羽毛球", "乒乓球"]
a2=dict()
a2['姓名'] = "李四"a2['年龄'] = 25a2['爱好'] = ["篮球", "足球", "橄榄球"]
info=dict()
info['用户信息'] =[a1, a2]
info['用户个数'] = 2
#如何把字典/列表/对象转换为字符串?
json_str = json.dumps(info, ensure_ascii=False) #ensure_ascii=False禁用ascii编码
with open(file_name, "w+", encoding="utf-8") as josn_file_handle:
josn_file_handle.write(json_str)exceptFileExistsError as e:print ("py3文件不存在")
这里的文件名称没有使用 .json 后缀, 主要是方便查看写入内容的格式,即json存储格式, 方便我们了解json的存储结构
在这里 我们使用了json_str = json.dumps(info, ensure_ascii=False)来把info的数据类型转化为字符串, 如果不转换的话会出现如下错误:
总结
在做json读写操作时一定要注意传递的参数是字符串还是其他数据类型, 注意格式之间的转换问题, 否则很容易出现错误.
pythonjson中list操作_Python中json的简单读写操作相关推荐
- python sqlserver 数据操作_python对Excel数据进行读写操作
python对Excel数据进行读写操作 将学习到的基础操作记录在这里,便与复习查看 1.python读取Excel工作簿.工作表 import xlrd # 读取工作簿 wb=xlrd.open_w ...
- python中csv文件操作_python中操作csv文件
python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...
- python中查找字符串_python中字符串操作--截取,查找,替换
python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...
- python中定义数据结构_Python中的数据结构—简介
python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...
- python中字典使用_python中字典的使用
python中的字典的特性: 在字典中的元素是散列存放的,没有顺序, 在进行增删改查的时候使用字典中需要的关键字(key)即可. 一: 创建字典 1)直接定义一个: dict = {'ob1':'co ...
- python json文件操作_python对json的操作总结
引言 你一定听说过 JSON 吧.JSON 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,最重要的是在多个场合都被大量被使用. 既然 JSON 这么好,那就让我们继续探险,去掌握 pyt ...
- python中相对路径_Python中的绝对路劲和相对路径
1.绝对路径 os.path.abspath("文件名"): 显示的是一个文件的绝对路劲 eg: >>> import os >>> os.ch ...
- mfc从文件中读取数据_Python 中的 bytes、str 以及 unicode 区别
从Python发展历史谈起 Python3和Python2表示字符序列的方式有所不同. Python3字符序列的两种表示为byte和str.前者的实例包含原始的8位值,即原始的字节:后者的实例包括Un ...
- python中函数定义_Python中函数的定义与使用
原博文 2020-02-27 16:46 − 一.函数基本定义 定义函数的目的是为了让一段代码可以被重复使用 函数定义的语法: def 函数名([参数,参数.....]): 函数主体代码(多行代码) ...
最新文章
- WCF服务一:WCF服务简介
- 运行报表时提示输入用户名和密码
- 计算机管理技术学院,计算机管理论文,关于国家电网技术学院:管理平台有“三好”教学管理享轻松相关参考文献资料-免费论文范文...
- ubuntu tree 显示中文的方法
- USB口的红外条形码扫描器的另类使用
- 卷积神经网络中feature map的含义
- 7-6 查找整数 (10 分)
- idea 导入项目时 “Import project from external model” 和 “Create project from existing sources”的区别
- 银行固定资产管理系统盘点方案
- grub4dos修改/制作message背景文件
- 高级软件工程第七次作业:LLS战队Alpha敏捷冲刺5
- C++笔记(Ⅵ_模板)
- 欧拉公式推导(e^iπ+1=0)
- python tkinter编写界面,使用win32com操作excel获取数据生成截图后,wxpy登录微信,给租客发送房租(三)
- 在Mac中使用OpenNI
- php计算机专业毕业设计题目,计算机专业毕业论文-基于PHP的网络爬虫的设计与实现.doc...
- python gui学生管理系统(Python gui+MySQL数据库)
- CAD进阶练习(四)
- javacv学习之实现matlab中imfill算法(孔洞填充)
- 业务流程管理系统(BPMS)