在 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
为普通字典:
- 使用该
json.dumps()
方法将嵌套转换OrderedDict
为 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.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 传递OrderedDict
给dict()
类,因为
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
类也保证保留插入顺序。