我们已经处理过基于字符串和字典的不同问题。在本教程中,我们将看到如何在Python中将字符串转换为字典。

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

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

例如-

flower = 'Rose'  
sub = 'Python'  
name = 'James'  

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

字典被定义为Python中使用键-值对的数据结构,这些键-值对用花括号括起来。

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

字典的示例是-

Subj = {'subj1': 'Computer Science', 'subj2': 'Physics', 'subj3': 'Chemistry', 'subj4': 'Mathematics'}  

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

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

现在让我们详细讨论每一种方法-

使用 json.loads()

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

#using json()  
import json  
#initialising the string  
string_1 = '{"subj1":"Computer Science","subj2":"Physics","subj3":"Chemistry","subj4":"Mathematics"}'  
print("String_1 is ",string_1)  
#using json.loads()  
res_dict=json.loads(string_1)  
#printing converted dictionary  
print("The resultant dictionary is ",res_dict)  

输出:

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 来帮助我们实现目标。

以下程序说明了相同的内容-

#convert string to dictionary  
#using ast()  
import ast  
#initialising the string  
string_1 = '{"subj1":"Computer Science","subj2":"Physics","subj3":"Chemistry","subj4":"Mathematics"}'  
print("String_1 is ",string_1)  
#using ast.literal_eval  
res_dict=ast.literal_eval(string_1)  
#printing converted dictionary  
print("The resultant dictionary is ",res_dict)  

输出:

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. 最后,在最后一步中,我们显示了转换后的字典。

使用生成器表达式

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

仔细研究给定的程序。

#convert string to dictionary  
#using generator expressions  
#initialising the string  
string_1 = "subj1 - 10 , subj2 - 20, subj3 - 25, subj4 - 14"  
print("String_1 is ",string_1)  
#using strip() and split()  
res_dict = dict((a.strip(), int(b.strip()))  
                     for a, b in (element.split('-')  
                                  for element in string_1.split(', ')))  
#printing converted dictionary  
print("The resultant dictionary is: ", res_dict)  
print(type(res_dict))  

输出:

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() 验证了其类型。

结论

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

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程