Python 有许多数据结构可以使用,每个结构都会增加一些东西。通常我们需要从一个数据结构转换到另一个数据结构,以无缝传递数据。在本教程中,我们将看到如何将Python字典转换为字符串。
我们已经看到了以下的转换:
Python字典是一个重要的容器,几乎在日常编程和网络开发的每个代码中都会用到。它用得越多,就越需要掌握它,因此,对其操作的了解是必要的。
让我们考虑以下情况:
我正在写一个将数据存储在字典对象中的程序。但是,这些数据在程序执行过程中需要保存,并在程序重新运行时装回字典对象中。
我怎样才能把字典对象转换为一个写到文件中的字符串,然后再加载回字典对象中?这将有希望支持包含字典的字典。
让我们看看在 Python 中把 dict 转换为字符串的第一个方法。
Python dict 转为字符串
要在 Python 中把 dictionary 转换为字符串,使用 json.dumps() 函数。 json.dumps()是json库中的一个内置函数,可以通过将json模块导入到程序的头部来使用。
它比pickle有优势,因为它有跨平台支持。
请看下面的代码:
# app.py
import json
stranger = {"Eleven": "Millie",
"Mike": "Finn",
"Will": "Noah"}
# print original dictionary
print("initial dictionary = ", stranger)
print(type(stranger))
# convert dictionary into string
# using json.dumps()
op = json.dumps(stranger)
# printing result as string
print("final string = ", op)
print("\n", type(op))
输出
➜ pyt python3 app.py
initial dictionary = {'Eleven': 'Millie', 'Mike': 'Finn', 'Will': 'Noah'}
<class 'dict'>
final string = {"Eleven": "Millie", "Mike": "Finn", "Will": "Noah"}
<class 'str'>
➜ pyt
首先,我们要在上面的代码中打印出原始字典和它的类型。
然后我们用Python json.dumps()函数将字典转换为字符串,再打印字符串和它的类型。
使用 str() 函数将 Python dict 转换成字符串
Python str()函数将指定的值转换为字符串。
请看下面的代码:
# app.py
stranger = {"Eleven": "Millie",
"Mike": "Finn",
"Will": "Noah"}
# print original dictionary
print("initial dictionary = ", stranger)
print(type(stranger))
# convert dictionary into string
# using str()
op = str(stranger)
# printing result as string
print("final string = ", op)
print("\n", type(op))
输出
➜ pyt python3 app.py
initial dictionary = {'Eleven': 'Millie', 'Mike': 'Finn', 'Will': 'Noah'}
<class 'dict'>
final string = {'Eleven': 'Millie', 'Mike': 'Finn', 'Will': 'Noah'}
<class 'str'>
➜ pyt
首先,我们必须在上面的代码中打印原始字典和它的类型。
然后我们用Python str()函数将字典转换为字符串,再打印字符串和它的类型。
Python 字符串到字典
我们已经看到了两种将 Python 字典转换为字符串的方法,现在我们将看到如何使用 Python ast 模块的literal.eval()函数将 Python 字典转换为字符串。
请看下面的代码:
import ast
stranger = '{"name": "Krunal", "age": "26"}'
# print original string
print("initial string = ", stranger)
print(type(stranger))
# convert string into dictionary
# using ast.literal_eval()
op = ast.literal_eval(stranger)
# printing result as string
print("final dictionary = ", op)
print("\n", type(op))
输出
➜ pyt python3 app.py
initial string = {"name": "Krunal", "age": "26"}
<class 'str'>
final dictionary = {'name': 'Krunal', 'age': '26'}
<class 'dict'>
➜ pyt
首先,我们必须在上面的代码中打印出原始字符串和它的类型。
然后我们用Python ast.literal_eval()函数将字符串转换为字典,再打印字典和它的类型。
总结
如果你要求将字典转换为字符串,那么,使用Python的str()方法如何?
如果你要求将一个字符串转换成一个字典,那么使用Python的ast.literal.eval()方法。
本教程就到此为止。