如何将 JSON 对象作为参数传递给 Python 函数?


JSON 对象作为参数传递给 Python 函数可以通过使用 **json.loads()** 方法来实现。我们还可以将 JSON 字符串转换为 Python 字典或列表,这取决于其结构。

JSON 对象

考虑一个要作为 Python 函数解析的 JSON 对象。

{
  "name":"Rupert", 
  "age": 25, 
  "desig":"developer"
}

使用 json.loads()

在将 JSON 对象作为参数传递给函数之前,需要将其转换为 Python 对象。可以使用 Python 的 **json** 模块中的 **json.loads()** 方法来实现。

涉及的步骤

  • **导入 json 模块**: 首先导入 **'json'** 模块,该模块包含处理 JSON 数据的工具。

  • **创建 JSON 字符串**: 定义要使用的 JSON 字符串。

  • **使用 json.loads() 转换**: 使用 'json.loads()' 将 JSON 字符串转换为 Python 字典或列表。

  • **传递给函数**: 将转换后的 Python 对象作为参数传递给你的函数。

示例

在下面的示例代码中,**'json.loads()'** 函数解析 JSON 对象 **('strng')** 并将其转换为 Python 字典。

# Importing json module
import json  
# Defines JSON string
json_string = '{"name":"Rupert", "age": 25, "desig":"developer"}' 
print (type(json_string))
# Define  function which processes a JSON string
# Converting the JSON string into a Python dictionary
def func(strng):
    a =json.loads(strng) 
    print (type(a))
    # Iterating the dictionary
    for k,v in a.items():
           print (k,v)
    print (dict(a))
func(json_string)

输出

<class 'str'>
<class 'dict'>
name Rupert
age 25
desig developer
{'name': 'Rupert', 'age': 25, 'desig': 'developer'}

使用 JSON 反序列化

将 JSON 字符串转换回 Python 对象的过程称为 JSON 反序列化。通常,此方法用于处理以 JSON 格式传输或存储的数据。

示例

在示例代码中,**'json.loads()'** 函数用于将 JSON 字符串反序列化为 Python 对象。生成的 Python 对象 **'python_obj'** 将是一个表示 JSON 字符串结构的字典。

import json
# JSON string
json_string = '{"name": "John", "age": 30, "is_student": false, "courses": ["Math", "Science"], "address": {"city": "New York", "state": "NY"}}'
# Deserialize JSON string to Python object
python_obj = json.loads(json_string)
print(python_obj)

输出

{'name': 'John', 'age': 30, 'is_student': False, 'courses': ['Math', 'Science'], 'address': {'city': 'New York', 'state': 'NY'}}

更新于: 2024年10月14日

8K+ 次查看

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告