Python中json.load()和json.loads()之间的区别
JSON(Java Script Object Notation)是一种脚本(可执行)文件,由编程语言中的文本组成,用于存储和传输数据。它是一种独立于语言的格式,并且很容易理解,因为它本质上是自描述的。Python有一个名为json的内置包。在本文中,我们将看到Json.load和json.loads()方法。这两种方法都用于从文件中读取和写入Unicode字符串。
推荐:使用 BeautifulSoup从HTML中提取JSON
json.load()
json.load()接受一个文件对象并返回json对象。它用于从文件中读取JSON编码数据并将其转换为Python字典并反序列化文件本身,即它接受文件对象。
语法:json.load(fp,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)
参数:
- fp:读取文本的文件指针。
- object_hook:这是一个可选参数,将在任何对象文字解码的结果中调用。
- parse_float:这是一个可选参数,将与每个要解码的JSON浮点数的字符串一起调用。
- parse_int:这是一个可选参数,将与每个要解码的JSONint的字符串一起调用。
- object_pairs_hook:它是一个可选参数,将调用使用有序对列表解码的任何对象文字的结果。
例子:
import json
data = {
"name": "xiaodeblog","place": "China","skills": ["WordPress ","Python","Web Development"],
"email": "xiao@pythonthree.com",
"projects": [
"Python Data Mining","Python Data Science"]
}
with open( "data_file.json" , "w" ) as write:
json.dump( data , write )
之后,创建json文件,让我们使用json.load():
with open("data_file.json", "r") as read_content:
print(json.load(read_content))
输出:
{'name': 'xiaodeblog', 'place': 'China', 'skills': ['WordPress ', 'Python', 'Web Development'], 'email': 'xiao@pythonthree.com', 'projects': ['Python Data Mining', 'Python Data Science']}
json.loads()
json.loads()方法可用于解析有效的JSON字符串并将其转换为Python字典。它主要用于将由JSON数据组成的原生字符串、字节或字节数组反序列化为Python字典。更多信息可参考文档。
语法:json.loads(s,encoding=None,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)
参数:
- s:使用此转换表将包含JSON文档的str(s)实例反序列化为Python对象。
- object_hook:这是一个可选参数,将在任何对象文字解码的结果中调用。
- parse_float:这是一个可选参数,将与每个要解码的JSON浮点数的字符串一起调用。
- parse_int:这是一个可选参数,将与每个要解码的JSONint的字符串一起调用。
- object_pairs_hook:它是一个可选参数,将调用使用有序对列表解码的任何对象文字的结果。
例子:
import json
data = """{"Name": "xiao","Contact Number": 1234567898,
"Email": "xiao@pythonthree.com",
"Hobbies":["Reading", "Sketching", "Horse Riding"]}"""
res = json.loads(data)
print(res)
输出:
{'Name': 'xiao', 'Contact Number': 1234567898, 'Email': 'xiao@pythonthree.com', 'Hobbies': ['Reading', 'Sketching', 'Horse Riding']}
总结
以上是晓得博客为你介绍的Python中json.load()和json.loads()之间的区别的全部内容,希望对你的Python学习有所帮助。