1.什么是JSON

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

1.1JSON的两种表示结构

JSON有两种表示结构,对象和数组

(1)对象

以” { ”大括号开始,以” } ”大括号结束。中间部分由0或多个以” ,”分隔的 ”key(关键字)/value(值)” 对构成,关键字和值之间以” :”分隔,语法结构如代码。

{key1:value1,key2:value2,...
}

注意:
1️⃣JSON中关键字key只能是字符串,
2️⃣而值value可以是字符串,数值,true,false,null,对象或数组

(2)数组

以” [ ”开始,” ] ” 结束。中间由0或多个以” ,”分隔的值列表组成,语法结构如代码。

[{key1:value1,key2:value2 },{key3:value3,key4:value4   }
]

1.2JOSN字符串和JSON对象的区别

之前我一直有个困惑,分不清普通字符串,json字符串和json对象的区别。经过一番研究终于给弄明白了。比如在js中。

(1)普通字符串:

这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:

Str = 'this is string’

(2)JSON字符串:

指的是符合json格式要求的js字符串。例如:

json_Str = "{"StudentID":100,"Name":"tmac","Hometown":"usa"}"

ps:就是使用”“包裹的json格式,叫json字符串

(3)JSON对象:

指符合json格式要求的js对象。例如:

{ "StudentID": 100, "Name": "tmac", "Hometown": "usa" }

1.3python数据类型与json数据类型的映射关系

2. json和Python的字典的区别

从形式上看,json对象和字典都是“Key:Value”的形式。

从本质上讲,字典是一种数据结构,而json是一种数据格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性,并且是格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,而且“key”必须使用边界符(双引号),但字典就无所谓了。

2.1 json 和 字典的相互转换

函数 描述
json.dumps 将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象
import Json
#1.创建一个新的字典
a_dict = {"a":1,"b":2}
print("type of a_dict is {}".format(type(a_dict)))
>>type of a_dict is <class 'dict'>
#2.将 Python 对象编码成 JSON 字符串
a_json = json.dumps(a_dict)
print(a_json)
>>{"a": 1, "b": 2}
print("type of a_json is {}".format(type(a_json)))
>>type of a_json is <class 'str'>#类型变为了字符串
#3.将json字符串解码成为 Python对象
new_dict = json.loads(a_json)
print(new_dict)
print("type of new_dict is {}".format(type(new_dict)))
>>type of new_dict is <class 'dict'>

3.在Python中如何使用json

3.1.dumps 和 loads

函数 描述
json.dumps 将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象

3.2 json.dump()和json.load()主要用来读写json文件函数

举例说明:

import json,time
# save data to json file
def store(data):with open('data.json', 'w') as fw:# 将字典转化为字符串# json_str = json.dumps(data)# fw.write(json_str)# 上面两句等同于下面这句json.dump(data,fw)
# load json data from file
def load():with open('data.json','r') as f:data = json.load(f)return dataif __name__ == "__main__":json_data = '{"login":[{"username":"aa","password":"001"},{"username":"bb","password":"002"}],"register":[{"username":"cc","password":"003"},{"username":"dd","password":"004"}]}'# 函数是将json格式数据转换为字典data = json.loads(json_data)store(data)data = load()print(data)

Python 中的json字符串以及使用相关推荐

  1. python中的JSON到底怎么用?

    前言 最近在学习python爬虫,在对数据进行持久化存储的时候,会选择使用json格式的数据进行存储,由此就引发了一个问题,python中的JSON库到底咋用? 以前使用JavaScript中Json ...

  2. 详解Python中的JSON以及在Python中使用JSON

    首先什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱,即JavaScript对象表示法) 是一种用于表示结构化数据的流行数据格式.      在服务器 ...

  3. python中字典和json的区别_详解python中的json和字典dict

    定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...

  4. Python 中的json模块dumps参数详解

    1.什么是JSON 维基百科中的定义: JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计.轻量级的资料交换语言,该 ...

  5. python json方法详解_详解python中的json的基本使用方法

    在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口. #!/usr/bin/env ...

  6. python json loads_如何区别python中的json模块loads和load方法

    在python中的json模块,有一对方法load()和loads(),其中load()方法是从json文件读取json,而loads()方法是直接读取json,两者都是将字符串json转换字典对象. ...

  7. Python中的JSON简介

    您知道如何从在线API传输数据或将不同类型的数据存储到本地计算机吗?无论以何种方式,您都会沉浸在JSON中,JSON代表[Java Script Object Notation].它是一种著名的流行数 ...

  8. 在python中使用json格式存储数据

    在python中使用json格式存储数据 代码如下: import jsonlist1 = [{'A': [1, 2, 3, 4, 5, 6], 'B': [3, 4, 5, 6, 7]},{'C': ...

  9. Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

最新文章

  1. java 传入参数_java参数怎么传递参数
  2. Scut游戏服务器引擎6.1.5.6发布,直接可运行,支持热更新
  3. python打开文件不存在-Python判断文件是否存在的三种方法
  4. Asp.Net中几种标记符号解释及用法
  5. 程序员如何用gRPC谈一场恋爱
  6. javascript引用bug带来的继承
  7. 表单的默认提交方式_对于PHP表单提交有哪集中方式讲解
  8. UIScrollView 滚动视图 (实例)
  9. 根据两点之间的连线,计算连线到各坐标轴之间的夹角(角度,弧度)
  10. .net 集合分成几个等数量集合_[C#.NET 拾遗补漏]08:强大的LINQ
  11. 高接低挡,Isilon三款新品铺开战线
  12. java arraylist删除元素_java集合类ArrayList操作之删除remove某些元素的案例分析
  13. 算法 博士_Strangecode博士-我如何学会不再担心并喜欢算法
  14. 关于nohup,sh,命令执行xxx.sh脚本的区别
  15. 大友克洋机器人嘉年华_大友克洋
  16. Segmentation Fault 错误原因总结及解决方法
  17. 用C++做一个特小型恶意程序
  18. 应用之间的访问都是遵循网络协议的
  19. python爬虫之汽车之家论坛帖子内容爬取
  20. 我们是如何连上WiFi的?

热门文章

  1. linux下面某些常用命令的用法【转】
  2. 用awk 取出ifconfig eth0中IP的方法
  3. hdu-acm steps Max sum
  4. Java5、Java6、Java7的新特性
  5. 用JAVA制作小游戏——推箱子(二)
  6. rethat linux安装nginx,nginx系列-00-编译安装-CentOS/RedHat
  7. mysql dns反向解析_DNS练习之反向解析(示例代码)
  8. mysql慢查询面试题_头条Java岗3面入职:事务+慢查询SQL+Redis+秒杀设计面试题等
  9. Chrome 73 DevTools 新功能之 Logpoints
  10. Android(IPC)进程间通讯1:详解Binder由来?