如何将Python dictionary中的冒号替换为等号用于函数参数
实现方案
由于字典键值均为动态生成,不建议直接对字典字符串做全局冒号替换,避免键/值本身包含冒号:时被误替换,推荐优先使用遍历键值对手动拼接的方案:
1. 通用安全实现(无嵌套场景)
def dict_to_eq_format(input_dict): item_list = [] for key, value in input_dict.items(): # repr会自动为字符串添加对应引号,兼容数字、布尔等多种类型值 item_list.append(f"{repr(key)} = {repr(value)}") return "{" + ", ".join(item_list) + "}"
使用示例:
temp = {"name" : "user1", "age" : "20"} output = dict_to_eq_format(temp) print(output) # 输出:{'name' = 'user1', 'age' = '20'}
如果需要固定用双引号包裹键值,可调整为:
def dict_to_eq_format_double_quote(input_dict): item_list = [] for key, value in input_dict.items(): # 注意该写法仅适用于键值本身不含双引号的场景 item_list.append(f'"{key}" = "{value}"') return "{" + ", ".join(item_list) + "}"
2. 简易快速实现(仅适用于键值内容无冒号的场景)
如果能确保所有键和值的内容中都不包含冒号:,可以直接做字符串替换:
temp = {"name" : "user1", "age" : "20"} output = str(temp).replace(":", "=") print(output) # 输出:{'name' = 'user1', 'age' = '20'}
嵌套字典适配
如果字典包含嵌套结构(值为另一个字典),只需要对值做递归类型判断,嵌套字典也按上述拼接逻辑处理即可。
内容的提问来源于stack exchange,提问作者Arijit Ghosh
相关产品推荐
相关产品推荐

