如何用Python编写JSON?

如何用Python编写JSON?

在本文中,我们将学习在Python中编写JSON的不同方法。

转换规则

将Python对象转换为JSON数据时,dump()方法遵循以下转换规则:

Python JSON
dict object
list、tuple array
str string
int、float number
True true
False false
None null

将字典写入JSON文件中

json.dump()函数的作用是将Python对象排列成JSON格式的流,并存储到指定文件中。

语法

dump(obj, fp, *, skipkeys=False,
   check_circular=True, allow_nan=True,
   indent=None, separators=None, default=None,
   sort_keys=False, **kw)

参数

  • obj − obj是一个对象,排列为JSON格式的流。

  • fp − fp也称为文件对象,将存储JSON数据。

  • skipkeys − 默认值为False。它忽略字典键不是基本类型的情况。否则,它将引发TypeError。

  • check_circular − 它的默认值为True。它的主要任务是为容器类型执行循环引用检查。这有时会以OverflowError的形式输出结果。

  • allow_nan − 它的默认值为True。如果为false,则序列化超出范围的浮点值将导致ValueError。它默认使用JavaScript的等效项,如-NaN、Infinity、-Infinity等。

  • indent − 用于按指定顺序进行良好的打印。

  • separators − 这是JSON中使用的分隔符。

  • default − 如果对象无法序列化,则调用此函数。它返回对象的JSON编码版本,或引发TypeError。如果没有给出类型,则默认引发TypeError。

  • sort_keys − 默认值为False。如果为true,则字典的输出将按键进行排序/排序。

示例

以下程序使用json.dump()函数将给定字典转换为JSON文件。

# 导入json模块
import json

# 创建一个字典
inputDict = {
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode":"503004"
}

# 以写模式打开JSON文件
with open('outputfile.json', 'w') as json_file:

   # 将字典数据写入相应的JSON文件中。
   json.dump(inputDict, json_file)

输出

在执行以上程序后,将生成以下输出。

{"website": "Tutorialspoint", "authorName": "xyz", "Age": 25, "Address": "hyderabad", "pincode": "503004"}

创建了一个名为 outputfile.json 的文件,其中包含上述字典数据。

使用缩进参数

使用dump()方法的indent参数进行漂亮的打印。

示例

以下程序使用json.dump()函数和indent参数将给定字典转换为缩进的漂亮JSON文件。

# 导入JSON模块
import json

# 创建一个字典
inputDict = {
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode":"503004"
}

# 以写模式打开JSON文件
with open('outputfile.json', 'w') as json_file:

   # 将字典数据写入JSON文件中
   # 添加缩进参数以使其具有良好的缩进
   json.dump(inputDict, json_file, indent=5)

结果

执行以上程序将生成以下输出−

{
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode": "503004"
}

将包含上述字典数据的文件outputfile.json创建,缩进格式过程中使其更美观。

对JSON中的键进行排序

我们可以使用 sort_keys = True 参数按字母顺序对字典的键进行排序。

以下程序使用json.dump()函数和sort_keys参数将给定的字典转换为排序的JSON文件,其中包括缩进−

# 导入JSON模块
import json

# 创建一个字典
inputDict = {
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode":"503004"
}

# 以写模式打开JSON文件
with open('outputfile.json', 'w') as json_file:

   # 将字典数据写入JSON文件中
   # 缩进参数-使其具有良好的缩进
   # sort_keys-按字母顺序对字典键排序
   json.dump(inputDict, json_file, indent=5, sort_keys=True)

结果

{
   "Address": "hyderabad",
   "Age": 25,
   "authorName": "xyz",
   "pincode": "503004",
   "website": "Tutorialspoint"
}

当前,如上所示的键已经按字母顺序排序。

Separators是另一个可以使用的参数。在其中,您可以使用任何您喜欢的分隔符(”,”,”:”,“,”,“:”)。

将Python列表转换为JSON

示例

以下程序使用dumps()函数将Python列表转换为JSON字符串−

# 导入JSON模块
import json

# 输入列表
inputList = [2, 4, 6, 7]

# 使用dumps()函数将输入列表转换为JSON字符串
jsonString = json.dumps(inputList)

# 显示结果JSON字符串
print(jsonString)

# 显示结果JSON字符串的类型
print(type(jsonString))

输出

[2, 4, 6, 7]
<class 'str'>

将Python列表的字典转换为JSON

示例

以下程序使用dumps()函数将Python列表的字典转换为JSON字符串−

# 导入json模块
import json

# 输入字典的列表
list_dict = [{'x':10, 'y':20, 'z':30}, {'p':40, 'q':50}]

# 将字典列表转换为JSON字符串
jsonData = json.dumps(list_dict)

# 显示JSON数据
print(jsonData)

输出结果

[{"x": 10, "y": 20, "z": 30}, {"p": 40, "q": 50}]

将Python列表的列表转换为JSON

示例

以下程序使用dumps()函数将Python列表的列表转换为JSON字符串−

# 导入JSON模块
import json

# 输入的列表的列表
list_of_list = [[{'x':10, 'y':20, 'z':30}], [{'p':40, 'q':50}]]

# 将列表的列表转换为JSON字符串
jsonString = json.dumps(list_of_list)

# 显示结果JSON字符串
print(jsonString)

输出

[[{"x": 10, "y": 20, "z": 30}], [{"p": 40, "q": 50}]]

结论

本文章包含了一系列将不同数据格式转化为JSON文件、JSON字符串等的技巧。同时,还深入讲解了用于将任何可迭代对象转化为JSON的json.dumps() 方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程