gpt4 book ai didi

python - 转换嵌套字典/列表中的 Decimal.decimal 值

转载 作者:可可西里 更新时间:2023-11-01 10:15:36 25 4
gpt4 key购买 nike

我有一个对象,它是 dictlist、常规数据类型和 decimal.Decimal 的嵌套组合。我想用 PyMongo 将这个对象插入到 MongoDB 中。 PyMongo 拒绝插入 Decimal.decimal,所以我想将我所有的 Decimal.decimal 转换为 string

以前,您可以使用 son_manipulator 执行此操作,但现在是 deprecated .

如何有效地将嵌套数据结构中的所有 decimal.Decimal 对象转换为 string

最佳答案

与 Amazon 的 DynamoDB 和 boto3 完全相同的问题。

def replace_decimals(obj):
if isinstance(obj, list):
for i in xrange(len(obj)):
obj[i] = replace_decimals(obj[i])
return obj
elif isinstance(obj, dict):
for k in obj.iterkeys():
obj[k] = replace_decimals(obj[k])
return obj
elif isinstance(obj, decimal.Decimal):
return str(obj)
# In my original code I'm converting to int or float, comment the line above if necessary.
if obj % 1 == 0:
return int(obj)
else:
return float(obj)
else:
return obj

关于python - 转换嵌套字典/列表中的 Decimal.decimal 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44146808/

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