📜  Python|将字符串内容转换为字典(1)

📅  最后修改于: 2023-12-03 15:19:19.904000             🧑  作者: Mango

Python|将字符串内容转换为字典

在 Python 编程中,将字符串内容转换为字典是一项非常常见的任务。Python 提供了一种内置函数 eval() 可以实现这个任务。

使用 eval() 函数实现

下面是一个简单的例子,展示了如何使用 eval() 函数将一个字符串转换为一个字典:

string = '{ "name": "John", "age": 30, "city": "New York"}'
dictionary = eval(string)
print(dictionary)

输出:

{'name': 'John', 'age': 30, 'city': 'New York'}

在上面的代码中,我们将一个含有三个键值对的字典转换为一个字符串,并使用 eval() 函数将它再次转换为一个字典。

需要注意的是,使用 eval() 函数时必须保证字符串内容是合法的 Python 代码。如果字符串内容格式不正确,将会抛出语法错误。

使用 json 模块实现

除了 eval() 函数外,Python 的 json 模块同样提供了一种将字符串内容转换为字典的方法。

下面是一个使用 json.loads() 函数将字符串转换为字典的例子:

import json

string = '{ "name": "John", "age": 30, "city": "New York"}'
dictionary = json.loads(string)
print(dictionary)

输出:

{'name': 'John', 'age': 30, 'city': 'New York'}

如果字符串内容格式不正确,json.loads() 函数将会抛出一个 JSONDecodeError 异常。

注意事项

无论是使用 eval() 函数还是 json.loads() 函数,都要格外小心。由于字符串内容来源不可靠,如果不进行好的安全检查和处理,将会存在风险。一些常见的常见风险有代码注入攻击等。因此,对于不能确定来源的字符串内容,尽量避免使用 eval() 函数,建议使用 json.loads() 函数。