在 Python 中将 OrderedDict 转换为常规 Dict

使用 dict() 函数将 OrderedDict 转换为常规字典,例如 dictionary = dict(ordered_dict) 。 dict() 函数可以传递一个可迭代的键值对并返回一个新字典。

from collections import OrderedDict
import json

# ✅ 将 OrderedDict 转换为常规 Dict

ordered_dict = OrderedDict(
    [('first', 'fql'),
     ('last', 'zadmei'),
     ('age', 30)]
)

dictionary = dict(ordered_dict)

# ?️ {'first': 'fql', 'last': 'zadmei', 'age': 30}
print(dictionary)
print(type(dictionary))  # ?️ <class 'dict'>

# ---------------------------------------------------

# ✅ 将嵌套的 OrderedDict 转换为常规字典

ordered_dict = OrderedDict(
    [('name', 'fqlzadmei'),
     ('address', OrderedDict([('post_code', 123)])),
     ]
)

json_str = json.dumps(ordered_dict)

regular_dict = json.loads(json_str)

# ?️ {'name': 'fqlzadmei', 'address': {'post_code': 123}}
print(regular_dict)

print(type(regular_dict))  # ?️ <class 'dict'>

在 Python 中将 OrderedDict 转换为常规 Dict

第一个示例使用 dict() 函数将 OrderedDict 对象转换为字典。

如果它不是嵌套的 OrderedDict 对象,我们可以直接将 OrderedDict 传递给 dict() 函数。

from collections import OrderedDict

ordered_dict = OrderedDict(
    [('first', 'fql'),
     ('last', 'zadmei'),
     ('age', 30)]
)

dictionary = dict(ordered_dict)

# ?️ {'first': 'fql', 'last': 'zadmei', 'age': 30}
print(dictionary)
print(type(dictionary))  # ?️ <class 'dict'>

print(dictionary['first'])  # ?️ fql
print(dictionary['last'])  # ?️ zadmei

可以向 dict() 类传递一个可迭代的关键字参数或可迭代的键值对,并返回一个新字典。

在 Python 中将嵌套的 OrderedDict 转换为常规的 Dict

要将嵌套的 OrderedDict 转换为常规字典:

  1. 使用 json.dumps() 方法将嵌套的 OrderedDict 转换为 JSON 字符串。
  2. 使用 json.loads() 方法将 JSON 字符串转换为本机 Python 字典。
from collections import OrderedDict
import json


ordered_dict = OrderedDict(
    [('name', 'fqlzadmei'),
     ('address', OrderedDict([('post_code', 123)])),
     ]
)

json_str = json.dumps(ordered_dict)

regular_dict = json.loads(json_str)

# ?️ {'name': 'fqlzadmei', 'address': {'post_code': 123}}
print(regular_dict)

print(type(regular_dict))  # ?️ <class 'dict'>

 

第一步是使用 json.dumps() 方法将嵌套的 OrderedDict 对象转换为 JSON 字符串。

from collections import OrderedDict
import json


ordered_dict = OrderedDict(
    [('name', 'fqlzadmei'),
     ('address', OrderedDict([('post_code', 123)])),
     ]
)

json_str = json.dumps(ordered_dict)
print(json_str)  # ?️ {"name": "fqlzadmei", "address": {"post_code": 123}}
print(type(json_str))  # ?️ <class 'str'>

json.dumps 方法将 Python 对象转换为 JSON 格式的字符串。

from collections import OrderedDict
import json


ordered_dict = OrderedDict(
    [('name', 'fqlzadmei'),
     ('address', OrderedDict([('post_code', 123)])),
     ]
)

json_str = json.dumps(ordered_dict)

regular_dict = json.loads(json_str)

# ?️ {'name': 'fqlzadmei', 'address': {'post_code': 123}}
print(regular_dict)

print(type(regular_dict))  # ?️ <class 'dict'>

json.loads 方法将 JSON 字符串解析为本机 Python 对象。

my_dict = dict(
    [('id', 1), ('first', 'fql'), ('last', 'zadmei')]
)

print(my_dict)  # ?️ {'id': 1, 'first': 'fql', 'last': 'zadmei'}

OrderedDict 类是 dict 的子类,它会记住其条目的添加顺序。