Python 中的json字符串以及使用
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字符串以及使用相关推荐
- python中的JSON到底怎么用?
前言 最近在学习python爬虫,在对数据进行持久化存储的时候,会选择使用json格式的数据进行存储,由此就引发了一个问题,python中的JSON库到底咋用? 以前使用JavaScript中Json ...
- 详解Python中的JSON以及在Python中使用JSON
首先什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱,即JavaScript对象表示法) 是一种用于表示结构化数据的流行数据格式. 在服务器 ...
- python中字典和json的区别_详解python中的json和字典dict
定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...
- Python 中的json模块dumps参数详解
1.什么是JSON 维基百科中的定义: JSON(JavaScript Object Notation,JavaScript对象表示法)是一种由道格拉斯·克罗克福特构想和设计.轻量级的资料交换语言,该 ...
- python json方法详解_详解python中的json的基本使用方法
在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口. #!/usr/bin/env ...
- python json loads_如何区别python中的json模块loads和load方法
在python中的json模块,有一对方法load()和loads(),其中load()方法是从json文件读取json,而loads()方法是直接读取json,两者都是将字符串json转换字典对象. ...
- Python中的JSON简介
您知道如何从在线API传输数据或将不同类型的数据存储到本地计算机吗?无论以何种方式,您都会沉浸在JSON中,JSON代表[Java Script Object Notation].它是一种著名的流行数 ...
- 在python中使用json格式存储数据
在python中使用json格式存储数据 代码如下: import jsonlist1 = [{'A': [1, 2, 3, 4, 5, 6], 'B': [3, 4, 5, 6, 7]},{'C': ...
- Python中列表和字符串的反转
要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...
最新文章
- java 传入参数_java参数怎么传递参数
- Scut游戏服务器引擎6.1.5.6发布,直接可运行,支持热更新
- python打开文件不存在-Python判断文件是否存在的三种方法
- Asp.Net中几种标记符号解释及用法
- 程序员如何用gRPC谈一场恋爱
- javascript引用bug带来的继承
- 表单的默认提交方式_对于PHP表单提交有哪集中方式讲解
- UIScrollView 滚动视图 (实例)
- 根据两点之间的连线,计算连线到各坐标轴之间的夹角(角度,弧度)
- .net 集合分成几个等数量集合_[C#.NET 拾遗补漏]08:强大的LINQ
- 高接低挡,Isilon三款新品铺开战线
- java arraylist删除元素_java集合类ArrayList操作之删除remove某些元素的案例分析
- 算法 博士_Strangecode博士-我如何学会不再担心并喜欢算法
- 关于nohup,sh,命令执行xxx.sh脚本的区别
- 大友克洋机器人嘉年华_大友克洋
- Segmentation Fault 错误原因总结及解决方法
- 用C++做一个特小型恶意程序
- 应用之间的访问都是遵循网络协议的
- python爬虫之汽车之家论坛帖子内容爬取
- 我们是如何连上WiFi的?
热门文章
- linux下面某些常用命令的用法【转】
- 用awk 取出ifconfig eth0中IP的方法
- hdu-acm steps Max sum
- Java5、Java6、Java7的新特性
- 用JAVA制作小游戏——推箱子(二)
- rethat linux安装nginx,nginx系列-00-编译安装-CentOS/RedHat
- mysql dns反向解析_DNS练习之反向解析(示例代码)
- mysql慢查询面试题_头条Java岗3面入职:事务+慢查询SQL+Redis+秒杀设计面试题等
- Chrome 73 DevTools 新功能之 Logpoints
- Android(IPC)进程间通讯1:详解Binder由来?