使用Python读取 JSON 文件
JSON 的完整形式是 JavaScript Object Notation。这意味着由编程语言中的文本组成的脚本(可执行)文件用于存储和传输数据。 Python通过一个名为 json 的内置包支持 JSON。要使用此功能,我们在Python脚本中导入 json 包。 JSON中的文本是通过quoted-string完成的,该字符串包含{}内键值映射中的值。
从 JSON 读取
在Python中加载 JSON 对象非常容易。 Python有一个名为 json 的内置包,可用于处理 JSON 数据。这是通过使用 JSON 模块完成的,它为我们提供了很多方法,其中的 load() 和 load() 方法将帮助我们读取 JSON 文件。
JSON的反序列化
JSON 的反序列化是指将 JSON 对象转换为它们各自的Python对象。 load()/loads() 方法用于它。如果你使用过其他程序的 JSON 数据,或者获取为 JSON 的字符串格式,那么很容易用 load()/loads() 进行反序列化,通常用于从字符串加载,否则,根对象在列表中或听写。请参见下表。JSON OBJECT PYTHON OBJECT object dict array list string str null None number (int) int number (real) float true True false False
json.load(): json.load() 接受文件对象,解析 JSON 数据,用数据填充Python字典并将其返回给您。
句法:
json.load(file object)
示例:假设 JSON 文件如下所示:
我们要读取这个文件的内容。下面是实现。
Python3
# Python program to read
# json file
import json
# Opening JSON file
f = open('data.json')
# returns JSON object as
# a dictionary
data = json.load(f)
# Iterating through the json
# list
for i in data['emp_details']:
print(i)
# Closing file
f.close()
Python3
# Python program to read
# json file
import json
# JSON string
a = '{"name": "Bob", "languages": "English"}'
# deserializes into dict
# and returns dict.
y = json.loads(a)
print("JSON string = ", y)
print()
# JSON file
f = open ('data.json', "r")
# Reading from file
data = json.loads(f.read())
# Iterating through the json
# list
for i in data['emp_details']:
print(i)
# Closing file
f.close()
输出:
json.loads():如果你有一个 JSON字符串,你可以使用 json.loads() 方法解析它。json.loads() 不采用文件路径,而是将文件内容作为字符串,使用 fileobject。 read() 和 json.loads() 我们可以返回文件的内容。
句法:
json.loads(jsonstring) #for Json string
json.loads(fileobject.read()) #for fileobject
示例:此示例显示从字符串和 JSON 文件读取。使用上面显示的文件。
Python3
# Python program to read
# json file
import json
# JSON string
a = '{"name": "Bob", "languages": "English"}'
# deserializes into dict
# and returns dict.
y = json.loads(a)
print("JSON string = ", y)
print()
# JSON file
f = open ('data.json', "r")
# Reading from file
data = json.loads(f.read())
# Iterating through the json
# list
for i in data['emp_details']:
print(i)
# Closing file
f.close()
输出: