如何在Python中把字符串转换为JSON

404 阅读2分钟

JSON 对象被用于许多网络 API 中,使用这些数据来提取有意义的信息;我们需要将这些数据转换为一个字典。Python提供了一个内置的json包,有各种方法来序列化反序列化JSON。

Python字符串到JSON

要在Python中把字符串转换成json,可以使用**json.load()**函数。json.load()是一个内置的Python函数,它接受一个有效的json字符串,并返回一个字典来访问所有元素。 json.load()函数用于将有效的 JSON 字符串 解析字典

为了使用 json.load() 方法,我们必须导入Python 提供的 json 包。将json数据转换为Python对象的过程被称为反序列化

# app.py

import json

json_string = '''
{
  "students": [
    {
      "name": "Millie Brown",
      "active": true,
      "rollno": 11
    },
    {
      "name": "Sadie Sink",
      "active": true,
      "rollno": 10
    }
  ]
}
'''
print(json_string)
print("The type of object is: ", type(json_string))
stud_obj = json.loads(json_string)
print(stud_obj)
print("The type of object is: ", type(stud_obj))
json_obj = json.dumps(stud_obj)
print(json_obj)
print("The type of object is: ", type(json_obj))

输出

{
  "students": [
    {
      "name": "Millie Brown",
      "active": true,
      "rollno": 11
    },
    {
      "name": "Sadie Sink",
      "active": true,
      "rollno": 10
    }
  ]
}

The type of object is:  <class 'str'>
{'students': [{'name': 'Millie Brown', 'active': True, 'rollno': 11}, 
              {'name': 'Sadie Sink', 'active': True, 'rollno': 10}]}
The type of object is:  <class 'dict'>
{"students": [{"name": "Millie Brown", "active": true, "rollno": 11}, 
              {"name": "Sadie Sink", "active": true, "rollno": 10}]}
The type of object is:  <class 'str'>

在这个例子中,我们首先使用json.load()方法将json字符串转换为Python字典对象,然后使用json.dumps()方法将字典转换为字符串。

从JSON到Python对象的数据转换

  1. 对象 =>dict
  2. 数组 =>列表
  3. string =>str
  4. 数字 (int) => int
  5. number (real) => float
  6. true => 真
  7. false => False
  8. null =>None

json.load()和json.load()的区别

json.load()和json.load()函数的主要区别是,load()函数用于从文件中读取JSON文档,而load()函数用于将JSON字符串文档转换成Python字典。

json.load()函数可以自己反序列化一个文件,json.load()函数反序列化一个字符串。

结论

如果我们有一个JSON字符串或JSON数据,我们可以使用json包中的json.load()方法快速解析它。

另见

如何在Python中创建一个json文件

如何在Python中读取json文件

Python json到字典

Python json 到 csv

Python json解析