如何在Python中把字典转换成JSON

498 阅读2分钟

在这篇文章中,让我们学习如何将python字典转换成JSON。首先让我们了解什么是JSON。JSON是javascript对象符号的缩写。JSON的结构类似于python中的字典。条件是,JSON的键必须始终是一个带双引号的字符串。 而且,与键对应的值可以是任何数据类型,如字符串、整数、嵌套JSON等。JSON的返回类型是 "字符串 "对象类型。

例子

import json

a =  '{ "One":"A", "Two":"B", "Three":"C"}'


python中的字典是一种内置的数据类型,用于将数据存储在一个与值格式相关的键中。存储在字典中的数据是无序的,唯一的对(键总是唯一的,值可以重复),并且是可变的。dictionary 的返回类型是 'dict' 对象类型。

例子

#Dictionary in python is built-in datatype so 
#no need to import anything.

dict1 = { 'One' : 1, 'Two' : 2, 'C': 3}

将 Dict 转换成 JSON

Python 确实有一个叫做 "json" 的默认模块,可以帮助我们将不同的数据形式转换为 JSON。我们今天使用的函数是 The json. dumps() 方法允许我们将一个 python 对象 (在本例中是 dictionary) 转换为一个等价的 JSON 对象:

  • 首先,我们导入json 模块
  • 为需要转换为JSON字符串的字典指定一个变量名。
  • 使用json.dumps*(variable*)来转换

注意:不要混淆json.dumps和json.dump。json.dumps() 是一个可以将Python对象转换成JSON字符串的方法,而json.dump() 是一个用于将JSON写入/转储到文件的方法。

json的语法

json.dumps(dict,intend)
  • dict- python字典我们需要转换
  • intend - 缩进的数量(代码行开头的空格)
import json

dict1 ={ 
  "Name": "Adam", 
  "Roll No": "1", 
  "Class": "Python"
} 
       
json_object = json.dumps(dict1, indent = 3) 
print(json_object)


输出

{
   "Name": "Adam",
   "Roll No": "1",
   "Class": "Python"
}

使用 sort_keys 属性将 dictionary 转换为 JSON

在前面讨论的dumps()方法中使用sort_key属性会以排序的方式返回一个 JSON 对象。如果该属性被设置为 TRUE,那么字典就会被排序并转换为一个 JSON 对象。如果它被设置为 FALSE,那么 dict 就以它的方式转换,而不进行排序:

import json

dict1 ={ 
  "Adam": 1,
  "Olive" : 4, 
  "Malcom": 3,
   "Anh": 2, 
} 
       
json_object = json.dumps(dict1, indent = 3, sort_keys = True) 
print(json_object)

输出

{
   "Adam": 1,
   "Anh": 2,
   "Malcom": 3,
   "Olive": 4
}

将嵌套的 dict 转换为 JSON

在dict内部声明的dict被称为嵌套dict。dumps()方法也可以将这种嵌套dict转换为json:

dict1 ={ 
  "Adam": {"Age" : 32, "Height" : 6.2},
  "Malcom" : {"Age" : 26, "Height" : 5.8},
}

json_object = json.dumps(dict1, indent = 3, sort_keys = True) 
print(json_object)

输出

{
   "Adam": {
      "Age": 32,
      "Height": 6.2
   },
   "Malcom": {
      "Age": 26,
      "Height": 5.8
   }
}

总结

在这篇文章中,我们讨论了如何将 dictionary 数据结构转换为 JSON 以便进一步处理。我们使用 json 模块将 dictionary 序列化为 JSON。