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文件

代码如下:

import json
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 in data_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文件不存在")
except JSONDecodeError as e:
print ("JSON文件解码错误(数据格式不正确|没有内容)")

我写的是使用的python3环境,  如果是python2,   print 后面无需使用()

2 将内容写入json文件

代码如下:

import json
file_name = "user.txt"
try:
a1 = dict()
a1['姓名'] = "张三"
a1['年龄'] = 20
a1['爱好'] = ["羽毛球", "乒乓球"] a2 = dict()
a2['姓名'] = "李四"
a2['年龄'] = 25
a2['爱好'] = ["篮球", "足球", "橄榄球"] 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)
except FileExistsError as e:
print ("py3文件不存在")

这里的文件名称没有使用  .json 后缀, 主要是方便查看写入内容的格式,即json存储格式, 方便我们了解json的存储结构

在这里 我们使用了json_str = json.dumps(info, ensure_ascii=False)来把info的数据类型转化为字符串, 如果不转换的话会出现如下错误:

                

总结

在做json读写操作时一定要注意传递的参数是字符串还是其他数据类型, 注意格式之间的转换问题, 否则很容易出现错误.

Python中json的简单读写操作的更多相关文章

  1. python中 对文件的读写操作 以及如何边写入 边保存flush()

    转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...

  2. [笔记] Python 中JSON数据的读写

    前言 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换语言 JSON是独立于语言的文本格式, JSON 数据格式与语言无关 JSO ...

  3. MVC中Cookies的简单读写操作

    写入 public static void WriteCookie(string cn, string cv, DateTime Time) { HttpCookie cookie = new Htt ...

  4. python中json格式数据输出实现方式

    python中json格式数据输出实现方式 主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info[&q ...

  5. Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  6. js中json数据简单处理(JSON.parse()和js中嵌套html)

    js中json数据简单处理(JSON.parse()和js中嵌套html) 一.总结 1.html中嵌套js:<script>js代码</script> 2.js中嵌套html ...

  7. python中argparse模块简单使用

    python中argparse模块简单使用 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2. ...

  8. (数据科学学习手札126)Python中JSON结构数据的高效增删改操作

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一期文章中我们一起学习了在Python ...

  9. python中json操作

    1.写操作.json文件dumps().dump()函数 d = { 'zll': { 'addr': '北京', 'age': 28 }, 'ljj': { 'addr': '北京', 'age': ...

随机推荐

  1. GIL全局解释器锁,线程池与进程池 同步异步,阻塞与非阻塞,异步回调

    GIL全局解释器锁 1.什么是GIL 官方解释:'''In CPython, the global interpreter lock, or GIL, is a mutex that prevents ...

  2. USACO 1.3 Name That Number【暴搜】

    裸的穷举搜索. 研究了好久怎么输入$dict.txt$,$USACO$好像对$freopen$的顺序还有要求? /* ID: Starry21 LANG: C++ TASK: namenum */ # ...

  3. C学习笔记-预备知识

    计算机结构组成 CPU(中央处理器)(控制器+运算器) 存储器(内存+外存) 输出设备 输入设备 计算机系统组成 硬件系统 主机 中央处理器 运算器 控制器 内存储器 只读存储器 随机存储器 外部设备 ...

  4. JavaScript日期格式化处理

    /** * 获取年月,如:2018-08 */ export function getMonth () { return formatDate(new Date(), 'yyyy-MM') } /** ...

  5. python-Re模块用法

    主要函数:match().search().compile() re.compile compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 se ...

  6. SQL server 维护计划中 “清除维护任务” 执行报错

    SQL server 维护计划中 “清除维护任务” 执行报错,错误如下: 执行查询“EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2019...”失败,错 ...

  7. hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式

    hive的hiveserver2模式启动不起来,发现Hadoop一直处于安全模式 命令介绍 命令hadoop fs –safemode get 查看安全模式状态 命令hadoop fs –safemo ...

  8. PAT A1025 PAT Ranking(25)

    题目描述 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology o ...

  9. HIVE udf实例

    本例中udf来自<hive编程指南>其中13章自定义函数中一个例子. 按照步骤,第一步,建立一个项目,创建 GenericUDFNvl 类. /** * 不能接受第一个参数为null的情况 ...

  10. T100——作业action执行其他P作业,后台背景执行完后才能继续操作改作业

    范例:如axmt500订单,查询开单占用量: 客制作业cxmp500,通过参数-订单号,查询该订单下的料件,目前有库存量.开单占用量.库存可用量,查询后更新到该订单下的单身对应栏位: 现在axmt50 ...