代码片段:
conn = dynamo_connect()
company = Table("companydb",connection=conn)
companyrecord = {'company-slug':'www-google-com12','founding-year':1991, 'randomlist' :[1,2,3,4,5], 'randomdict' : {'a':[1,2,3],'b':'something','randomnumber':10.55} }
company.put_item(data=companyrecord)
我收到以下错误:
File "C:\Python27\lib\site-packages\boto\dynamodb2\items.py", line 329, in prepare_full
final_data[key] = self._dynamizer.encode(value)
File "C:\Python27\lib\site-packages\boto\dynamodb\types.py", line 279, in encode
return {dynamodb_type: encoder(attr)}
File "C:\Python27\lib\site-packages\boto\dynamodb\types.py", line 335, in _encode_m
return dict([(k, self.encode(v)) for k, v in attr.items()])
File "C:\Python27\lib\site-packages\boto\dynamodb\types.py", line 279, in encode
return {dynamodb_type: encoder(attr)}
File "C:\Python27\lib\site-packages\boto\dynamodb\types.py", line 305, in _encode_n
raise DynamoDBNumberError(msg)
boto.dynamodb.exceptions.DynamoDBNumberError: BotoClientError: Inexact numeric for `10.55`
最佳答案
如果您正在处理更大的集合并希望避免按记录处理以转换十进制,这会有所帮助。
from decimal import Decimal
import json
changed_data = json.loads(json.dumps(data), parse_float=Decimal)
关于python - 尝试使用 python boto 库插入 float 时出现 DynamoDBNumberError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28425117/