在 Python 中将 OrderedDict 转换为常规 Dict

在 Python 中将 OrderedDict 转换为常规 Dict

Convert an OrderedDict to a regular Dict in Python

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

主程序
from collections import OrderedDict import json # ✅ Convert an OrderedDict to a regular Dict ordered_dict = OrderedDict( [('first', 'bobby'), ('last', 'hadz'), ('age', 30)] ) dictionary = dict(ordered_dict) # 👇️ {'first': 'bobby', 'last': 'hadz', 'age': 30} print(dictionary) print(type(dictionary)) # 👉️ <class 'dict'> # --------------------------------------------------- # ✅ Convert a nested OrderedDict to a regular dict ordered_dict = OrderedDict( [('name', 'bobbyhadz'), ('address', OrderedDict([('post_code', 123)])), ] ) json_str = json.dumps(ordered_dict) regular_dict = json.loads(json_str) # 👇️ {'name': 'bobbyhadz', 'address': {'post_code': 123}} print(regular_dict) print(type(regular_dict)) # 👉️ <class 'dict'>

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

如果它不是嵌套对象,您可以直接将它传递OrderedDict给类。dict() OrderedDict
主程序
from collections import OrderedDict ordered_dict = OrderedDict( [('first', 'bobby'), ('last', 'hadz'), ('age', 30)] ) dictionary = dict(ordered_dict) # 👇️ {'first': 'bobby', 'last': 'hadz', 'age': 30} print(dictionary) print(type(dictionary)) # 👉️ <class 'dict'> print(dictionary['first']) # 👉️ bobby print(dictionary['last']) # 👉️ hadz

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

如果您有嵌套OrderedDict对象,请改用json模块。

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

将嵌套字典转换OrderedDict为普通字典:

  1. 使用该json.dumps()方法将嵌套转换OrderedDict为 JSON 字符串。
  2. 使用该json.loads()方法将 JSON 字符串转换为本机 Python 字典。
主程序
from collections import OrderedDict import json ordered_dict = OrderedDict( [('name', 'bobbyhadz'), ('address', OrderedDict([('post_code', 123)])), ] ) json_str = json.dumps(ordered_dict) regular_dict = json.loads(json_str) # 👇️ {'name': 'bobbyhadz', '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', 'bobbyhadz'), ('address', OrderedDict([('post_code', 123)])), ] ) json_str = json.dumps(ordered_dict) print(json_str) # 👉️ {"name": "bobbyhadz", "address": {"post_code": 123}} print(type(json_str)) # 👉️ <class 'str'>

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

最后一步是使用该json.loads()方法将 JSON 字符串解析为本机 Python 字典。
主程序
from collections import OrderedDict import json ordered_dict = OrderedDict( [('name', 'bobbyhadz'), ('address', OrderedDict([('post_code', 123)])), ] ) json_str = json.dumps(ordered_dict) regular_dict = json.loads(json_str) # 👇️ {'name': 'bobbyhadz', 'address': {'post_code': 123}} print(regular_dict) print(type(regular_dict)) # 👉️ <class 'dict'>

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

我们不能直接将 nested 传递OrderedDictdict()类,因为
dict()类需要一个可迭代的关键字参数或可迭代的键值对。

主程序
my_dict = dict( [('id', 1), ('first', 'bobby'), ('last', 'hadz')] ) print(my_dict) # 👉️ {'id': 1, 'first': 'bobby', 'last': 'hadz'}

OrderedDict
类是 的子类,

dict会记住其条目的添加顺序。

请注意,从 Python 3.7 开始,标准dict类也保证保留插入顺序。