python 怎么处理json_python中如何处理json数据

本文详细介绍了JSON的两种基本结构——对象和数组,以及如何在JavaScript中处理。区分了普通字符串、JSON字符串和JSON对象的概念,并通过Python示例展示了如何进行序列化和反序列化操作。此外,讨论了JSON与Python dict的区别,强调了JSON作为数据交换格式的简洁性和便利性。
摘要由CSDN通过智能技术生成

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。这篇文章主要从以下几个方面来说明JSON。

1,JSON的两种结构

2,认识JSON字符串

JSON的两种结构

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

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

{

key1:value1,

key2:value2,

...

}

其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

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

[

{

key1:value1,

key2:value2

},

{

key3:value3,

key4:value4

}

]

认识JSON字符串

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

字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';

json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";

json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };

注意:我们在写入文件中的数据,只能是字符串,但是如果要想把内存的数据对象存到硬盘上去怎么办呐?

总结:如果是从文件中读数据,就用json.load,因为文件中的数据都是字符串类型,要把字符串转成json类型;如果是把内存中的东西,写入到文件中,就需要把json类型转换成字符串类型,用json.jump

2202484-20201121205054095-1763613759.png

dump()

import json

info = {

'name':"zhangqigao",

"age":22

}

with open("test.txt","w") as f: #文件以写的方式打开

json.dump(info,f) #第1个参数是内存的数据对象 ,第2个参数是文件句柄

#text.txt文件中的内容

{"name": "zhangqigao", "age": 22}

load()反序列化

import json

with open("test.txt","r") as f: #以读的方式打开文件

data = json.load(f) #输入文件对象

print(data.get("age"))

#输出

22

json与dict的区别

Python 的dict是一种数据结构,json 是一种数据传输格式

Python的dict的key可以是任意可hash对象,json只能是字符串。形式上有些相像,但json是纯文本的,无法直接操作

json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,但dict就无所谓了。

python的dict的Key是唯一的,而json的Key可以重复。

2202484-20201121210622770-892589663.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值