gpt4 book ai didi

python - 可以使用单个点分隔的字符串路径设置 Python 嵌套字典项吗?

转载 作者:行者123 更新时间:2023-12-05 01:27:14 25 4
gpt4 key购买 nike

我希望能够使用单个点分隔字符串路径设置嵌套字典项。例如,给定以下字典:

data_dictionary = {
"user_data": {
"first_name": "Some",
"last_name": "Guy",
"phone": "212-111-1234"
}
}

我希望能够使用单个字符串设置特定项目,如下所示:

data_dictionary['user_data.phone'] = '818-333-4567'

有谁知道可以完成这样的事情的库或简单技术吗?

最佳答案

你可以定义一个小辅助函数:

def set(obj, path, value):
*path, last = path.split(".")
for bit in path:
obj = obj.setdefault(bit, {})
obj[last] = value

set(data_dictionary, "user_data.phone", "123")
data_dictionary
# {'user_data': {'first_name': 'Some', 'last_name': 'Guy', 'phone': '123'}}

您还可以子类化 dict 并覆盖 __setitem__:

class my_dict(dict):
def __setitem__(self, item, value):
if "." in item:
head, path = item.split(".", 1)
obj = self.setdefault(head, my_dict())
obj[path] = value
else:
super().__setitem__(item, value)

dd = my_dict({
"user_data": {
"first_name": "Some",
"last_name": "Guy",
"phone": "212-111-1234"
}
})

dd["user_data.phone"] = "123"
dd
# {'user_data': {'first_name': 'Some', 'last_name': 'Guy', 'phone': '123'}}

关于python - 可以使用单个点分隔的字符串路径设置 Python 嵌套字典项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69572167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com