在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对象。本教程就到此为止。