如何用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。它忽略了不属于基本类型的dict的键。否则,它将抛出一个TypeError。

  • check_circular – 它的默认值是True。它的主要任务是对容器类型进行循环引用检查。这有时会得到溢出错误的输出结果。

  • allow_nan – 它的e默认值是True。如果是假的,序列化超出范围的浮点数将导致ValueError.它默认使用JavaScript等价物,如-NaN,Infinity,-Infinity。

  • indent–它用于以指定的顺序进行良好的印刷。

  • separators- 这些是在JSON中使用的。

  • default – 当一个对象不能被序列化时,这个函数被调用。它要么返回对象的JSON编码版本,要么抛出一个TypeError。如果没有给出类型,则默认抛出一个TypeError。

  • sort_keys – 它的默认值是False。如果为真,字典的输出将按键进行排序。

示例

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

# importing json module
import json

# creating a dictionary
inputDict = {
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode":"503004"
}

# opening a JSON file in write mode
with open('outputfile.json', 'w') as json_file:

   # writing the dictionary data into the corresponding JSON file
   json.dump(inputDict, json_file)

输出

在执行时,上述程序将产生以下输出:

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

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

使用缩进参数

使用dump()方法的缩进参数进行有吸引力的打印。

示例

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

# importing JSON module
import json

# creating a dictionary
inputDict = {
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode":"503004"
}

# opening a JSON file in write mode
with open('outputfile.json', 'w') as json_file:

   # writing the dictionary data into the corresponding JSON file
   # by adding indent parameter to make it attractive with proper indentation
   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文件。

# importing JSON module
import json

# creating a dictionary
inputDict = {
   "website": "Tutorialspoint",
   "authorName": "xyz",
   "Age": 25,
   "Address": "hyderabad",
   "pincode":"503004"
}

# opening a JSON file in write mode
with open('outputfile.json', 'w') as json_file:

   # writing the dictionary data into the corresponding JSON file
   # indent parameter- to make it attractive with proper indentation
   # sort_keys- sorts the dictionary keys alphabetically
   json.dump(inputDict, json_file, indent=5, sort_keys=True)

输出

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

键现在是按字母排序的,如上图所示。

分隔符是一个可以使用的额外参数。在此,你可以使用任何你喜欢的分隔符(”, “, “: “, “, “:”)。

将Python列表转换为JSON

示例

下面的程序使用dumps()函数将python列表转换为JSON字符串。

# importing JSON module
import json

# input list
inputList = [2, 4, 6, 7]

# converting input list into JSON string using dumps() function
jsonString = json.dumps(inputList)

# printing the resultant JSON string
print(jsonString)

# printing the type of resultant JSON string
print(type(jsonString))

输出

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

将目录Python列表转换为JSON

示例

下面的程序将Directories python列表转换为JSON字符串。 使用dumps()函数 –

# importing json module
import json

# input list of dictionaries
list_dict = [{'x':10, 'y':20, 'z':30}, {'p':40, 'q':50}]

# converting list of dictionaries into json string
jsonData = json.dumps(list_dict)

# printing the JSON data
print(jsonData)

输出

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

将Python列表转换为JSON格式的列表

示例

下面的程序使用dumps()函数将Python List of Lists转换为JSON字符串。

# importing JSON module
import json

# input list of lists
list_of_list = [[{'x':10, 'y':20, 'z':30}], [{'p':40, 'q':50}]]

# converting a list of list into JSON string
jsonString = json.dumps(list_of_list)

# printing the resultant JSON string
print(jsonString)

输出

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

结论

本文包含了将各种数据格式转换为JSON文件、JSON字符串等的各种技术。json.dumps()是用来将任何形式的可迭代文件转换为JSON的,它也被深入介绍。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程