当前位置: 主页 > 前端开发

前端解析json数组-json解析数组

发布时间:2023-02-09 09:08   浏览次数:次   作者:佚名

json解析数组_前端解析json数组_安卓解析json数组

英文|

翻译 | 小爱同学在本文中,我们将学习如何在 Python 中处理 JSON 数据。 JSON 代表 JavaScript Object Notation,这是一种流行的基于文本的数据格式。 尽管 JSON 是从 JS 派生出来的,但它独立于语言已有一段时间了。 因此,任何编程语言都可以使用它。 它用于存储和交换数据。 例如,从 API 中拉取数据或在某些文档数据库中使用它时,数据主要是 JSON 格式。 让我们举个例子。

{
"name":"Ashton",
"age":15,
"grade":8,
"subjects":["math", "english", "science"],
}

可以看到,上面的数据可读性很强,看起来很像 Python。 数据项由键/值对组成,键/值对之间有冒号 (:)。 此外,两个数据项由逗号 (,) 分隔。

开始吧,让我们开始吧,看看如何在 Python 中处理 JSON 数据。

Python 原生支持 JSON前端解析json数组,并为此提供了一个内置模块 json。 在代码顶部添加以下行以开始使用 JSON。

import json

首先,我们看一下如何进行序列化,即对JSON数据进行编码。

编码 JSON 数据(Python 到 JSON)

将 JSON 写入文件

json 模块提供了 dump() 方法来将 JSON 数据写入文件。 它需要两个必需的参数,一个要编码的 Python 对象和一个类文件实例。 考虑以下示例。

import json
student_data = {
"name":"Ashton",
"age": 15,
"grade": 8,
"subjects": ["math", "english", "science"]
}

f = open("output.json", 'w')
json.dump(student_data, f)

输出

{"name": "Ashton", "age": 15, "grade": 8, "subject": ["math", "english", "science"]

如上例所示,我们有一个 Python 字典,其中包含有关学生的信息,例如姓名、年龄、年级和科目。 我们以写入模式打开 output.json 文件,然后将 student_data 对象转储到 JSON 文件中。

考虑下表,它显示了 Python 对象到 JSON 的转换。

安卓解析json数组_json解析数组_前端解析json数组

您还可以使用一些参数以更漂亮的格式编写 JSON 数据。 例如,缩进参数可以采用非负整数或字符串来指定缩进值。

如果传递 0、负值或空字符串,dump() 将只插入换行符。 此外,设置无(默认)会产生最紧凑的表示。

您还可以通过将 True 传递给 sort_keys 参数来按键对数据进行排序。 默认情况下前端解析json数组,它是假的。 让我们举个例子。

import json
student_data = {
"name":"Ashton",
"age": 15,
"grade": 8,
"subjects": ["math", "english", "science"]
}


f = open("output.json", 'w')
json.dump(student_data, f, indent=2, sort_keys=True)

输出

{
"age": 15,
"grade": 8,
"name": "Ashton",
"subjects": " [
"math",
"english",
"science",
]
}

正如您在上面的输出中看到的那样,它更清晰、更易于阅读。

将 Python 对象转换为 JSON 字符串

要将序列化对象转换为 JSON 字符串,可以使用 dumps() 方法。 它类似于 dump(),不同之处在于它不需要文件对象,它返回一个包含 JSON 格式信息的字符串。 让我们来看看。

import json
student_data = {
"name":"Ashton",
"age": 15,
"grade": 8,
"subjects": ["math", "english", "science"]
}json_string = json.dumps(student_data, indent=2, sort_keys=True)
print(json_string)
print(type(json_string))

输出

{
"age": 15,
"grade": 8,
"name": "Ashton",
"subjects": [
"math",
"english",
"science"
]
}
<class 'str'

现在,让我们继续看看如何执行反序列化,即解码 JSON 数据。

解码 JSON 数据(将 JSON 转换为 Python)

解析 JSON 文件

json 模块提供了 load() 方法来将 JSON 从文件加载到 Python 对象中。 它需要一个类似文件的对象作为其必需的参数。 例子如下。

import json 
f = open('sample.json', 'r')
data = json.load(f)
print(data)
print(type(data))

输出

{'name''Ashton''age':15,'grade':8,'address':None,subject':['math','english','science']}
dict'>

下表列出了从 JSON 到 Python 的转换规则。

安卓解析json数组_前端解析json数组_json解析数组

将 JSON 字符串解析为对象

同样,您可以使用 loads() 方法将 JSON 字符串转换为 Python 对象。 它采用包含 JSON 文档的字符串作为其必需参数。 让我们来看看。

import json
json_str = '''{
"name":"Ashton",
"age":15,
"grade":8,
"address":null,
"subjects":["math", "english", "science"]
}'''
data_parsed = json.loads(json_str)
print(data)
print(type(data))

输出

{'name': 'Ashton', 'age': 15, 'grade': 8, 'address': None, 'subjects':
['math', 'english', 'science']}
<class 'dict'>

在这里,json_str 变量包含多行字符串中的 JSON 文档。 使用 loads() 方法将其解析为字典。

这里还有一点需要注意的是,如果一个Python对象被序列化,然后反序列化,它不一定等于原来的对象。 考虑以下示例。

import json
student_data = {
"name":"Ashton",
"age": 15,
"grade": 8,
"subjects": ("math", "english", "science")
}


json_string = json.dumps(student_data, indent=2, sort_keys=True)
parsed_data = json.loads(json_string)
print(student_data==parsed_data)

输出

错误的

在上面的示例中,student_data 包含一个键 subject,其值为元组类型。 当student_data序列化为JSON字符串时,subjects的值会按照转换规则转换为数组。 当我们执行解码时,它被转换为列表而不是元组。 因此,原始数据和解码后的数据是不相等的。

学习更多技能

请点击下方公众号

安卓解析json数组_前端解析json数组_json解析数组

前端解析json数组_安卓解析json数组_json解析数组

json解析数组_安卓解析json数组_前端解析json数组