Python中json.load()和json.loads()之间的区别

Python中json.load()和json.loads()之间的区别

  Python中json.load()和json.loads()之间的区别

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方法
语法: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']}

  推荐:使用Python读取JSON文件

  json.loads()

  json.loads()方法可用于解析有效的JSON字符串并将其转换为Python字典。它主要用于将由JSON数据组成的原生字符串、字节或字节数组反序列化为Python字典。更多信息可参考文档

json.loads方法
语法: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学习有所帮助。

  推荐:零基础如何开始学习Python


滚动至顶部