在 Python中把dict转换为字符串的方法

3,859 阅读3分钟

Python 有许多数据结构可以使用,每个结构都会增加一些东西。通常我们需要从一个数据结构转换到另一个数据结构,以无缝传递数据。在本教程中,我们将看到如何将Python字典转换为字符串。

我们已经看到了以下的转换:

  1. Python字符串到int
  2. Python字符串到列表
  3. Python list到dict
  4. Python字典转为json

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()方法。

本教程就到此为止。