如何在 Python 中将字符串转换为字典

2024 年 8 月 29 日 | 阅读 3 分钟

我们已经处理过各种基于字符串和字典的问题。在本教程中,我们将了解如何在 Python 中将字符串转换为字典。

在此之前,让我们快速回顾一下字符串和字典。

字符串定义为字符序列,并用单引号或双引号表示。

例如:

我们可以使用 type() 检查上述变量的数据类型。

字典定义为 Python 中的一种数据结构,它使用键值对,并用花括号括起来。

我们可以通过相应的键来访问字典中的值。

字典的示例如下:

现在让我们列出可以将字符串转换为字典的方法。

  1. 使用 loads()
  2. 使用 literal_eval()
  3. 使用生成器表达式

现在是时候详细讨论它们了——

使用 json.loads()

下面的程序演示了如何使用 json.loads() 将字符串转换为字典。

输出

String_1 is  {"subj1":"Computer Science","subj2":"Physics","subj3":"Chemistry","subj4":"Mathematics"}
The resultant dictionary is  {'subj1': 'Computer Science', 'subj2': 'Physics', 'subj3': 'Chemistry', 'subj4': 'Mathematics'}

说明

让我们了解一下我们在上面的程序中做了什么——

  1. 第一步,我们导入了 json 模块。
  2. 之后,我们初始化了我们想要转换的字符串。
  3. 现在我们将 'string_1' 作为参数传递给 loads()
  4. 最后一步,我们显示了生成的字典。

使用 ast.literal_eval()

现在我们将看到 ast.literal_eval 如何帮助我们实现目标。

以下程序说明了这一点-

输出

String_1 is  {"subj1":"Computer Science","subj2":"Physics","subj3":"Chemistry","subj4":"Mathematics"}
The resultant dictionary is  {'subj1': 'Computer Science', 'subj2': 'Physics', 'subj3': 'Chemistry', 'subj4': 'Mathematics'}

说明

让我们了解一下我们在上面的程序中做了什么——

  1. 第一步,我们导入了 ast 模块。
  2. 之后,我们初始化了我们想要转换的字符串。
  3. 现在我们将 'string_1' 作为参数传递给 literal_eval()
  4. 最后一步,我们显示了生成的字典。

使用生成器表达式

最后,在最后一个示例中,我们将讨论如何使用生成器表达式。

让我们仔细研究给定的程序。

输出

String_1 is  subj1 - 10 , subj2 - 20, subj3 - 25, subj4 - 14
The resultant dictionary is:  {'subj1': 10, 'subj2': 20, 'subj3': 25, 'subj4': 14}
<class 'dict'>

现在是时候解释这种方法了——

  1. 在第一步中,我们声明了一个字符串,其中值用连字符配对,并且每对都用逗号分隔。此信息很重要,因为它将是获取所需输出的绝佳工具。
  2. 此外,我们在 for 循环中使用了 strip()split(),以便以常规格式获得字典。
  3. 最后,我们打印了创建的字典,并使用 type() 验证了它的类型。

结论

在本教程中,我们探索了字符串到字典的转换方法。