文章目录

  • 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版使用讲解相关推荐

  1. 程序猿必备福利之二上篇!!!简易使用Nodejs实现从美图网爬取清晰脱俗的美图???

    当然这里为了能够让小白也能够看懂学会,我会说的很详细,我很体谅小白的哦,分了几篇讲解,请谅解哦 这里先来一波看前美图福利,激起你的学习欲望,嘿嘿嘿!!!点击查看程序猿必备福利之二下篇##### 小白如 ...

  2. 神奇的网站-----程序猿必备

    神奇的网站-----程序猿必备,自学/复习/刷题/面试 w3school学习为主,全球最大的中文 Web 技术教程. 1.牛客 w3school 在线教程 nowcoder牛客,牛客网是IT求职神器, ...

  3. 几个大神程序猿更喜欢用的Python编辑器!

    作为开发者来说,肯定都有自己比较喜欢使用的编辑器,有的人喜欢这个,有的人喜欢那个,还有的大神就喜欢用记事本,今天小千就来给大家介绍几个大神程序猿更喜欢用的Python编辑器. 1.Sublime Te ...

  4. 用faster-rcnn训练自己的数据集(VOC2007格式,python版)

    用faster-rcnn训练自己的数据集(VOC2007格式,python版) 一. 配置caffe环境 ubunt16.04下caffe环境安装 二. 下载,编译及测试py-faster-rcnn源 ...

  5. (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码

    (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 文章目录 (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 一.序言 二.配置环境 1.下载pyautogui包 三.鼠标控制 ...

  6. 程序猿必备键盘推荐(Keychron),实用炫酷两不误。

    一.个人使用感受 #入坑keychron# 由于本人一直喜欢打游戏,大学时候码代码,所以一直在使用机械键盘,用过了两三个牌子的键盘,轴体的话基本涵盖茶轴.青轴.黑轴.红轴都有,个人更偏向于红轴,按起来 ...

  7. 程序猿必备的10款web前端动画插件十三

    1.jQuery圆形旋转切换菜单 带菜单项描述 jQuery有着无数的插件,菜单插件是jQuery插件中最多的,尤其是CSS3和HTML5的配合,让jQuery菜单变得更加丰富多彩.今天我们要给大家分 ...

  8. 一个net程序猿必备工具

    自古以来,人类的进步都是依赖于工具的进步,从刀耕火种,到使用青铜器,再到现在的科技,每一次都使我们的工作效率提高了无数倍,所以一个好的工具能使我们提高无数倍的工作效率,下面,我就根据自己简单的总结一下 ...

  9. 前端程序猿必备的网站

    前端轮播不会写?来试试这个,让轮播不在是你的短板: Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 不想写样式,自适应和响应式太难?试试这个: Bootstrap中文网 总所周知,B站是一 ...

最新文章

  1. 遍历数据键和值 php,php数组实例之获取当前数组键和值 each()
  2. nyoj 776 删除元素
  3. springboot参数校验,对象的某属性校验
  4. DedeCMS高仿老版chinaz站长网模板
  5. Jar运行的几个方法
  6. oracle bookauthor,Oracle 聚簇(征集)
  7. CNN图片分类(Pytorch)
  8. python 企业微信接口_python连接企业微信发送消息
  9. [c++]平均成绩、从尾到头打印链表、整数从大到小排序、二分法查找、斐波那契数列
  10. 第二十六篇 request模块使用
  11. 如何在Linux上创建手册页
  12. Saleae Logic 16 逻辑分析仪
  13. 什么是期货/股票分仓软件?
  14. 微信python小课_微信python小课靠谱吗
  15. 第18课:如何确认你的转型方向 · 上(图文篇)
  16. 二面角的计算,Python实现
  17. javaScript中三大家族总结
  18. Kafka创建topic
  19. ccxt php系统,CCXT中文开发手册
  20. 一套方案讲清:如何大幅提升医疗绩效考核综合管理水平!

热门文章

  1. 隔空投送找不到_Iphone手机隔空投送搜索不到对方怎样解决?
  2. python 从同花顺获取数据导出,通达信PYTHON读取本地数据,如何使用python在文件中读取数据?...
  3. three.js 精灵模型-树林效果
  4. win10系统补丁彻底终止更新的方法
  5. c语言数组初始化未赋值则默认是任意还是0?
  6. 供参考!去年计算机考研调剂信息集合,一共近千条
  7. # 写博客必备的一款工具 Typora#
  8. 牛客小白月赛1 G .あなたの蛙は旅⽴っています
  9. 【Word2019】不同页设置不同页码、设置参考文献序号
  10. 【Android】代码实现模拟屏幕点击和键盘按键事件