Python是怎样处理json模块的


Posted in Python onJuly 16, 2020

首先,了解下什么是JSON?

JSON:JavaScript Object Notation 【JavaScript 对象表示法】

JSON 是一种轻量级的数据交换格式,完全独立于任何程序语言的文本格式。一般,后台应用程序将响应数据封装成JSON格式返回。

JSON的基本语法如下:JSON名称/值对。JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),然后着是一个冒号(:),最后是值。

JSON最常用的格式是对象的键值对:key只能是string, value可以是 object、array、string、number、true/false、null

{
"sites": [
{ "name":"360" , "url":"www.360.com" }, 
{ "name":"google" , "url":"www.google.com" }, 
{ "name":"baidu" , "url":"www.baidu.com" }
]
}
  • 键通过双引号包裹,后面跟冒号“:”,然后跟该键的值;
  • 值可以是字符串、数字、数组等数据类型;
  • 对象与对象之间用逗号隔开;
  • “{}”用来保存对象;
  • “[]”用来保存数组;

json跟python中的字典看起来很像,两者之间的区别?

1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等;

2)字典是一种数据结构,json是一种数据格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性;

3)json的字符串强制用双引号,dict的字符串可以用单引号、双引号;

一般而言,我们会把json转化为python中的字典或者列表,再对其进行操作。

Python处理json的模块:json

Pythone3的标准库JSON模块,可以很方便的帮我们进行json数据的转换和处理,这里主要指序列化(json.dumps()、json.dump())和反序列化(json.loads()、json.load())。

序列化和反序列化:

将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML、JSON或特定格式的字节串)的过程称为序列化;反之,则称为反序列化。

常用的JSON模块方法:

  • json.dumps():将Python中的对象转换为JSON中的字符串对象
  • json.dump():将python对象转换成JSON字符串输出到fp流中。
  • json.loads():将JSON中的字符串对象转换为Python中的对象
  • json.load():读取包含json对象的文件。

带s的都是和字符串相关的,不带s的都是和文件相关的。

Python是怎样处理json模块的

实例:

把字典转换成json串

import json
dic = {'name': 'xiaoming', 'age': 29}
json_str = json.dumps(dic)#返回json字符串
print(json_str)
print(type(json_str))
输出:
{"name": "xiaoming", "age": 29}
<class 'str'>

Python解码JSON对象

import json
json_str ='{"id":"09", "name": "Nitin", "department":"Finance"}'
# Convert string to Python dict
dict = json.loads(json_str)
print(dict)
#转换成字典来后,要访问其中的值,可以使用字典的key来访问
print(dict['id'])
输出:
{'id': '09', 'name': 'Nitin', 'department': 'Finance'}
09

读取json文件

import json
with open('test1.json') as f:
  a = json.load(f)
print(a)
print(type(a))
输出:
{'sites': [{'name': '360', 'url': 'www.360.com'}, {'name': 'google', 'url': 'www.google.com'}, {'name': 'baidu', 'url': 'www.baidu.com'}]}
<class 'dict'>

写入json文件

import json
  dic ={
    "name" : "xiaoming",
    "age" : 20,
    "phonenumber" : "15555555555"
  }

  with open("test2.json", "w") as outfile:
    json.dump(dic, outfile)

  文件test.json {"name": "xiaoming", "age": 20, "phonenumber": "15555555555"}

Python是怎样处理json模块的

Python类型转换JSON类型的对应关系

Python是怎样处理json模块的

json类型转换到Python的类型对照表

Python是怎样处理json模块的

以上就是Python是怎样处理json模块的的详细内容,更多关于Python处理json模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
跟老齐学Python之变量和参数
Oct 10 Python
解析Python中的生成器及其与迭代器的差异
Jun 20 Python
python基础教程之匿名函数lambda
Jan 17 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
Python 单例设计模式用法实例分析
Sep 23 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 Python
python实现滑雪者小游戏
Feb 22 Python
keras的三种模型实现与区别说明
Jul 03 Python
python中HTMLParser模块知识点总结
Jan 25 Python
Python2手动安装更新pip过程实例解析
Jul 16 #Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 #Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 #Python
Python csv文件记录流程代码解析
Jul 16 #Python
Python 抓取数据存储到Redis中的操作
Jul 16 #Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 #Python
解决python对齐错误的方法
Jul 16 #Python
You might like
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
用Zend Encode编写开发PHP程序
2010/02/21 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
php实用代码片段整理
2016/11/12 PHP
PHP与以太坊交互详解
2018/08/24 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
js+SVG实现动态时钟效果
2018/07/14 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
详解django中自定义标签和过滤器
2017/07/03 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
英语自我评价范文
2014/01/24 职场文书
服务承诺书范文
2014/05/19 职场文书
广告宣传策划方案
2014/05/21 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
趣味运动会简讯
2015/07/20 职场文书
祝酒词范文
2015/08/12 职场文书
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers