首先,了解下什么是JSON?
JSON:JavaScript Object Notation 【JavaScript 对象表示法】
JSON 是一种轻量级的数据交换格式,完全独立于任何程序语言的文本格式。一般,后台应用程序将响应数据封装成JSON格式返回。
JSON的基本语法如下:JSON名称/值对。JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),然后着是一个冒号(:),最后是值。
JSON最常用的格式是对象的键值对:key只能是string, value可以是 object、array、string、number、true/false、null
{ "sites": [ { "name":"360" , "url":"www.360.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"baidu" , "url":"www.baidu.com" } ] }
- 键通过双引号包裹,后面跟冒号“:”,然后跟该键的值;
- 值可以是字符串、数字、数组等数据类型;
- 对象与对象之间用逗号隔开;
- “{}”用来保存对象;
- “[]”用来保存数组;
json跟python中的字典看起来很像,两者之间的区别?
1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等;
2)字典是一种数据结构,json是一种数据格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性;
3)json的字符串强制用双引号,dict的字符串可以用单引号、双引号;
一般而言,我们会把json转化为python中的字典或者列表,再对其进行操作。
Python处理json的模块:json
Pythone3的标准库JSON模块,可以很方便的帮我们进行json数据的转换和处理,这里主要指序列化(json.dumps()、json.dump())和反序列化(json.loads()、json.load())。
序列化和反序列化:
将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML、JSON或特定格式的字节串)的过程称为序列化;反之,则称为反序列化。
常用的JSON模块方法:
- json.dumps():将Python中的对象转换为JSON中的字符串对象
- json.dump():将python对象转换成JSON字符串输出到fp流中。
- json.loads():将JSON中的字符串对象转换为Python中的对象
- json.load():读取包含json对象的文件。
带s的都是和字符串相关的,不带s的都是和文件相关的。
实例:
把字典转换成json串
import json dic = {'name': 'xiaoming', 'age': 29} json_str = json.dumps(dic)#返回json字符串 print(json_str) print(type(json_str)) 输出: {"name": "xiaoming", "age": 29} <class 'str'>
Python解码JSON对象
import json json_str ='{"id":"09", "name": "Nitin", "department":"Finance"}' # Convert string to Python dict dict = json.loads(json_str) print(dict) #转换成字典来后,要访问其中的值,可以使用字典的key来访问 print(dict['id']) 输出: {'id': '09', 'name': 'Nitin', 'department': 'Finance'} 09
读取json文件
import json with open('test1.json') as f: a = json.load(f) print(a) print(type(a)) 输出: {'sites': [{'name': '360', 'url': 'www.360.com'}, {'name': 'google', 'url': 'www.google.com'}, {'name': 'baidu', 'url': 'www.baidu.com'}]} <class 'dict'>
写入json文件
import json dic ={ "name" : "xiaoming", "age" : 20, "phonenumber" : "15555555555" } with open("test2.json", "w") as outfile: json.dump(dic, outfile) 文件test.json {"name": "xiaoming", "age": 20, "phonenumber": "15555555555"}
Python类型转换JSON类型的对应关系
json类型转换到Python的类型对照表
以上就是Python是怎样处理json模块的的详细内容,更多关于Python处理json模块的资料请关注其它相关文章!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 潘安邦《思念精选集全纪录》5CD[WAV+CUE]
- 杨千嬅《千嬅新唱金牌金曲》金牌娱乐 [WAV+CUE][985M]
- 杨钰莹《依然情深》首版[WAV+CUE][1G]
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]