赞
踩
活动地址:CSDN21天学习挑战赛
概述:
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。
特点:
json独立于语言 json具有自我描述性,更加理解 json比xml更小、更快、更易理解
爬虫经常会获取接口数据,接口数据就是json格式
语法格式: {key:value1,key2:value2} 键值对形式
格式1:JSON 对象
对象是一个无序的“‘名称/值’对”集合。一个对象以{左括号开始,}右括号结束。每个“名称”后跟一个:冒号;“‘名称/值’ 对”之间使用,逗号分隔。
{"name": "小李", "sex": 男}
格式2:JSON 数组
和普通的 JS 数组一样,JSON 表示数组的方式也是使用方括号 []。
{
"student":
[
{"name": "小李", "sex": "男"},
{"name": "小丽", "sex": "女"},
{"name": "小王", "sex": "男"}
]
}
注意事项:
1.json的键值对的键部分,必须用双引号包裹,单引号都不行(所以如果在键中出现了关键字,也被字符化了),而js中对象没有强制要求(所以在键中不允许出现关键字)。
2. json的键值对的值部分,不允许出现函数function,undefined,NaN,但是可以有null,js中对象的值中可以出现。
3. json数据结束后,不允许出现没有意义的逗号
json模块是python内置的库,在使用的时候直接导入就可以。
json模块的操作使用相对较为简单,该模块只有四个方法dump()、load()、dumps()、loads()。
作用:
json模块的主要功能是将序列化数据从文件里读取出来或者存入文件。其中dump()是将数据存入文件中,load()是用于读取文件。而dumps()和loads()是对python对象进行操作。dumps()是将python对象编码成json字符串。loads()是将json字符串解码成python对象。
将python数据类型转换为json格式的字符串
import json
# Python字典
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
print(person)
print(type(person))
# Python字典转换为json字符串
jsonStr = json.dumps(person)
print(jsonStr)
print(type(jsonStr))
写入文件的方式:
import json
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
jsonStr = json.dumps(person)
# 打开文件 在文件里写入转成的json串
with open('test.json', 'w', encoding='utf-8') as f:
f.write(jsonStr)
将python数据类型转换并保存到son格式文件内
import json
person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True}
json.dump(person, open('data.json', 'w'), sort_keys=True, indent=4, separators=(',', ': '))
参数:
json.dumps和json.dump的区别:
将json格式的字符串转换为python的类型
import json # Python字典 person = {"name": "小李", "sex": "男", "tel": ["8234588", "1244351"], "isonly": True} print(person) print(type(person)) # Python字典转换为json字符串 jsonStr = json.dumps(person) print(jsonStr) print(type(jsonStr)) # json字符串再转换为Python字典 python_obj = json.loads(jsonStr) print(python_obj) print(type(python_obj))
文件操作
import json
f = open('data.json', encoding='utf-8')
content = f.read() # 使用loads()方法需要先读文件
python_obj = json.loads(content)
print(python_obj)
从json格式的文件中读取数据并转换为python的类型
import json
python_obj = json.load(open('data.json','r'))
print(python_obj)
print(type(python_obj))
json.load和json.loads()的区别
json模块就是用来读写数据的,用法也很简单,需要掌握的也不多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。