将Python字符串转换为dict的详细教程

1,625 阅读3分钟

在Python开发中,将一种数据类型转换为另一种数据类型是一个经常出现的问题,你必须适当地处理它。Python字典是一个强大的数据结构,它处理键值对。然而,在客户端和服务器之间交换数据时,使用json字符串。JSON 是数据交换的标准,当数据在客户端可用时,我们需要将 json 字符串转换为 dictionary。 要将Python字符串转换为字典,请继续这篇文章。

将Python字符串转换为dict

要将一个Python字符串转换为一个字典,请使用 json.loads()函数。json.load()是一个内置的Python函数,可以将一个有效的字符串转换为一个dict。 json.load()函数接收一个 json 字符串作为参数并返回字典。

首先,让我们定义一个 json 字符串:

str = '{"Name": "Millie", "Age": 18, "City": "Atlanata"}'

print('The JSON String is', str)

输出

The JSON String is {"Name": "Millie", "Age": 18, "City": "Atlanata"}

让我们使用**json.loads()**方法将一个字符串转换为一个字典。

在你使用load()方法之前,在你的程序中导入json包:

import json

现在,你可以使用load()方法了:

# app.py

import json

str = '{"Name": "Millie", "Age": 18, "City": "Atlanata"}'

print('The JSON String is', str)

convertedDict = json.loads(str)

print("After conversion: ", convertedDict)
print(type(convertedDict))

输出

The JSON String is {"Name": "Millie", "Age": 18, "City": "Atlanata"}
After conversion:  {'Name': 'Millie', 'Age': 18, 'City': 'Atlanata'}
<class 'dict'>

你可以看到 loads() 函数返回一个 dictionary,我们用type()方法验证了这一点。

要将Python dict转换为字符串,请使用json.dumps()方法。

这就是在 Python 中把字符串转换成 dict 的第一个简单方法。让我们看看另一种方法。

使用 ast.literal_eval()

ast.literal_eval() 是一个内置的Python库函数,用于将字符串转换为dict。要使用 literal_eval() 函数,请导入ast 包并使用其literal_eval()方法:

# app.py

import ast

str = '{"Name": "Millie", "Age": 18, "City": "Atlanata"}'

print('The JSON String is', str)

convertedDict = ast.literal_eval(str)

print("After conversion: ", convertedDict)
print(type(convertedDict))

输出结果

The JSON String is {"Name": "Millie", "Age": 18, "City": "Atlanata"}
After conversion:  {'Name': 'Millie', 'Age': 18, 'City': 'Atlanata'}
<class 'dict'>

你可以看到输出与load()函数相同,而且做的是同样的事情。

在 Python 中使用生成器表达式

如果我们有足够的字符串来组成一个字典,那么我们可以使用生成器表达式来将字符串转换为字典:

# app.py

str = "E - 11, K - 19, L - 21"

convertedDict = dict((x.strip(), int(y.strip()))
                     for x, y in (element.split('-')
                                  for element in str.split(', ')))

print("Converted dict is: ", convertedDict)
print(type(convertedDict))

输出

Converted dict is:  {'E': '11', 'K': '19', 'L': '21'}
<class 'dict'>

在这个例子中,我们使用了许多 Python 函数,如dict(),strip(),int() , 和split()

首先,我们在for 循环中分割了字符串,并使用 dict() 方法将它们转换为一个字典。接下来,使用 strip() 方法去除字符串中的空白,并使用 int() 函数将字符串转换为整数值的 int。

总结

json包在处理json数据时很有帮助。它可以帮助你轻松地将Python对象转换成json对象,将json对象转换成Python对象。本教程就到此为止。