程序猿必备知识-->>json格式 python版使用讲解
文章目录
- json的诞生
- 什么是json?
- JSON格式
- JOSN的6种数据类型
- 使用
- 实例:
json的诞生
JSON的诞生原因是因为XML整合到HTML中各个浏览器实现的细节不尽相同,所以道格拉斯·克罗克福特(Douglas Crockford) 和 奇普·莫宁斯达(Chip Morningstar)一起从JS的数据类型中提取了一个子集,作为新的数据交换格式,因为主流的浏览器使用了通用的JavaScript引擎组件,所以在解析这种新数据格式时就不存在兼容性问题,于是他们将这种数据格式命名为 “JavaScript Object Notation”,缩写为 JSON,由此JSON便诞生了!
什么是json?
JSON(JavaScript Object Notation) 的缩写,它适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。json的格式与字典格式相似。
【json】在互联网几乎无处不在,它是一种最为基本且通用的数据格式。
大部分前后端数据都是【json】格式,只有少部分会用其他类型数据格式。
对于【json】格式的字符串,在python中我们可以使用【json】库将其解析。
JSON格式
我们知道JSON是从JavaScript的数据类型中提取出来的子集,那JSON有几种结构形式呢?又有哪些数据类型呢?他们又分别对应着JavaScript中的哪些数据类型呢?
JSON的2种结构形式,键值对形式和数组形式。
举了一个JSON的实例,就是键值对形式的,如下:
{"person": {"name": "pig","age": "18","sex": "man","hometown": {"province": "江西省","city": "抚州市","county": "崇仁县" } }}
这种结构的JSON数据规则是:一个无序的“‘名称/值’对”集合。一个对象以 {左括号 开始, }右括号 结束。每个“名称”后跟一个 :冒号 ;“‘名称/值’ 对”之间使用 ,逗号 分隔。
因为大多数的时候大家用的JSON可能都是上面那种key-value形式,所以很多人在讲解JSON的时候总是会忽略数组形式,这一点是需要注意的。
那JSON的数组形式是怎么样的呢?举一个实例吧!
["pig", 18, "man", "江西省抚州市崇仁县"]
数组形式的JSON数据就是值(value)的有序集合。一个数组以 [左中括号 开始, ]右中括号 结束。值之间使用 ,逗号 分隔。
JOSN的6种数据类型
上面两种JSON形式内部都是包含value的,那JSON的value到底有哪些类型,而且上期我们说JSON其实就是从Js数据格式中提取了一个子集,那具体有哪几种数据类型呢?
string:字符串,必须要用双引号引起来。
number:数值,与JavaScript的number一致,整数(不使用小数点或指数计数法)最多为 15 位,小数的最大位数是 17。
object:JavaScript的对象形式,{ key:value }表示方式,可嵌套。
array:数组,JavaScript的Array表示方式[ value ],可嵌套。
true/false:布尔类型,JavaScript的boolean类型。
null:空值,JavaScript的null。
使用
json.dumps 将 Python 对象编码成 JSON 字符串
import jsondata = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]data2 = json.dumps(data)
print(data2)
[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]
json.loads 将已编码的 JSON 字符串解码为 Python 对象
import jsonjsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';text = json.loads(jsonData)
print(text)
{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
实例:
以豆瓣网为栗子
url = 'https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&genres=%E7%A7%91%E5%B9%BB&countries=%E7%BE%8E%E5%9B%BD'
由于【requests】请求到的响应对象自带【json】解析方法。所以可以通过调用json()方法,自动将字符串解析成字典的数据类型。
import requestsurl = 'https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&genres=%E7%A7%91%E5%B9%BB&countries=%E7%BE%8E%E5%9B%BD'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 ''Safari/535.1 '
}response_movies = requests.get(url, headers=headers)
dict_movies = response_movies.json()
print(type(dict_movies))
<class 'dict'>
在网页控制台中分析筛选下数据
然后
import requestsurl = 'https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&genres=%E7%A7%91%E5%B9%BB&countries=%E7%BE%8E%E5%9B%BD'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 ''Safari/535.1 '
}response_movies = requests.get(url, headers=headers)
dict_movies = response_movies.json()
print(type(dict_movies))
for info_movie in dict_movies['data']:print(info_movie['rate'], ' ->> ', info_movie['title'])
结果
<class 'dict'>
9.3 ->> 盗梦空间
8.7 ->> 头号玩家
9.3 ->> 楚门的世界
8.7 ->> 超能陆战队
9.3 ->> 星际穿越
9.3 ->> 机器人总动员
8.7 ->> 阿凡达
8.5 ->> 复仇者联盟4:终局之战
9.2 ->> 蝙蝠侠:黑暗骑士
8.1 ->> 复仇者联盟3:无限战争
7.5 ->> 复仇者联盟2:奥创纪元
8.2 ->> 复仇者联盟
7.0 ->> 美国队长
9.0 ->> 黑客帝国
7.2 ->> 毒液:致命守护者
8.1 ->> 银河护卫队
8.3 ->> 钢铁侠
8.0 ->> 美国队长2
7.7 ->> 蜘蛛侠:英雄远征
7.9 ->> 美国队长3
程序猿必备知识-->>json格式 python版使用讲解相关推荐
- 程序猿必备福利之二上篇!!!简易使用Nodejs实现从美图网爬取清晰脱俗的美图???
当然这里为了能够让小白也能够看懂学会,我会说的很详细,我很体谅小白的哦,分了几篇讲解,请谅解哦 这里先来一波看前美图福利,激起你的学习欲望,嘿嘿嘿!!!点击查看程序猿必备福利之二下篇##### 小白如 ...
- 神奇的网站-----程序猿必备
神奇的网站-----程序猿必备,自学/复习/刷题/面试 w3school学习为主,全球最大的中文 Web 技术教程. 1.牛客 w3school 在线教程 nowcoder牛客,牛客网是IT求职神器, ...
- 几个大神程序猿更喜欢用的Python编辑器!
作为开发者来说,肯定都有自己比较喜欢使用的编辑器,有的人喜欢这个,有的人喜欢那个,还有的大神就喜欢用记事本,今天小千就来给大家介绍几个大神程序猿更喜欢用的Python编辑器. 1.Sublime Te ...
- 用faster-rcnn训练自己的数据集(VOC2007格式,python版)
用faster-rcnn训练自己的数据集(VOC2007格式,python版) 一. 配置caffe环境 ubunt16.04下caffe环境安装 二. 下载,编译及测试py-faster-rcnn源 ...
- (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码
(程序员必备技能)基于Python的鼠标与键盘控制实战与源码 文章目录 (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 一.序言 二.配置环境 1.下载pyautogui包 三.鼠标控制 ...
- 程序猿必备键盘推荐(Keychron),实用炫酷两不误。
一.个人使用感受 #入坑keychron# 由于本人一直喜欢打游戏,大学时候码代码,所以一直在使用机械键盘,用过了两三个牌子的键盘,轴体的话基本涵盖茶轴.青轴.黑轴.红轴都有,个人更偏向于红轴,按起来 ...
- 程序猿必备的10款web前端动画插件十三
1.jQuery圆形旋转切换菜单 带菜单项描述 jQuery有着无数的插件,菜单插件是jQuery插件中最多的,尤其是CSS3和HTML5的配合,让jQuery菜单变得更加丰富多彩.今天我们要给大家分 ...
- 一个net程序猿必备工具
自古以来,人类的进步都是依赖于工具的进步,从刀耕火种,到使用青铜器,再到现在的科技,每一次都使我们的工作效率提高了无数倍,所以一个好的工具能使我们提高无数倍的工作效率,下面,我就根据自己简单的总结一下 ...
- 前端程序猿必备的网站
前端轮播不会写?来试试这个,让轮播不在是你的短板: Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 不想写样式,自适应和响应式太难?试试这个: Bootstrap中文网 总所周知,B站是一 ...
最新文章
- 遍历数据键和值 php,php数组实例之获取当前数组键和值 each()
- nyoj 776 删除元素
- springboot参数校验,对象的某属性校验
- DedeCMS高仿老版chinaz站长网模板
- Jar运行的几个方法
- oracle bookauthor,Oracle 聚簇(征集)
- CNN图片分类(Pytorch)
- python 企业微信接口_python连接企业微信发送消息
- [c++]平均成绩、从尾到头打印链表、整数从大到小排序、二分法查找、斐波那契数列
- 第二十六篇 request模块使用
- 如何在Linux上创建手册页
- Saleae Logic 16 逻辑分析仪
- 什么是期货/股票分仓软件?
- 微信python小课_微信python小课靠谱吗
- 第18课:如何确认你的转型方向 · 上(图文篇)
- 二面角的计算,Python实现
- javaScript中三大家族总结
- Kafka创建topic
- ccxt php系统,CCXT中文开发手册
- 一套方案讲清:如何大幅提升医疗绩效考核综合管理水平!
热门文章
- 隔空投送找不到_Iphone手机隔空投送搜索不到对方怎样解决?
- python 从同花顺获取数据导出,通达信PYTHON读取本地数据,如何使用python在文件中读取数据?...
- three.js 精灵模型-树林效果
- win10系统补丁彻底终止更新的方法
- c语言数组初始化未赋值则默认是任意还是0?
- 供参考!去年计算机考研调剂信息集合,一共近千条
- # 写博客必备的一款工具 Typora#
- 牛客小白月赛1 G	.あなたの蛙は旅⽴っています
- 【Word2019】不同页设置不同页码、设置参考文献序号
- 【Android】代码实现模拟屏幕点击和键盘按键事件