如何将API获取的哈希值替换为CSV中的人类可读文本?
如何将API获取的哈希值替换为CSV中的人类可读文本?
看起来你思路完全没问题——用字典做哈希值到可读名称的映射,这是处理这类需求最直接高效的方案!问题其实出在一个非常细微的拼写错误上,咱们来快速修正:
问题定位
你已经正确定义了映射字典SKU_MAP,但在转换哈希值的列表推导式里,你误写成了SKU_ID.get(...)——字典名称拼写不一致,导致程序找不到对应的映射关系,自然就直接返回原始的skuId值了,这就是替换没生效的原因。
修正后的代码
先确认你的映射字典保持不变:
SKU_MAP = { 'efccb6f7':'Product 1', '6050e30712fa':'Product 2', 'f8a100f':'Product 3', }
然后修改export_to_csv函数里的列表推导式,把SKU_ID改成SKU_MAP:
def export_to_csv(users): with open('/tmp/users.csv', mode='w', newline='') as file: writer = csv.writer(file) writer.writerow(['User Name', 'Assigned Products']) for user in users: # 修正字典名称,用SKU_MAP替代SKU_ID product_list = [SKU_MAP.get(license['skuId'], license['skuId']) for license in user['assignedLicenses']] writer.writerow([user['userPrincipalName'], ','.join(product_list)])
额外小提示
- 你用
dict.get(key, default)的写法非常稳妥:如果遇到字典里没有的哈希值,程序会自动返回原始的skuId,不会抛出KeyError导致程序崩溃 - 后续如果有新的哈希值需要映射,直接在
SKU_MAP里添加新的键值对即可,无需修改核心逻辑
备注:内容来源于stack exchange,提问作者Bam Grier
相关产品推荐
相关产品推荐

