0

我已經嘗試將uuid轉換爲下面代碼中的字符串,並且總是出現錯誤。無論我是否不聲明STR()分開uuid.uuid4() 參見下面的代碼:運行AWS Lambda時將str()錯誤(將uuid轉換爲字符串)w/Dynamo DB

from __future__ import print_function 
    from decimal import * 
    import boto3 
    import json 
    from locale import str 
    import uuid 

    def my_handler(event, context): 
     description = event['description'] 
     spot_id = uuid.uuid4() #Unique identifier for spot 
     dynamodb = boto3.client('dynamodb') 
     tablesinfo = "sinfo" 
     dynamodb.put_item(
     TableName = tablesinfo, Item = { 
      'spot_id':{'S' : str(spot_id)}, 
      'description': {'S' : description 
      } 
     ) 
     return {'spot_id' : spot_id} 

這些都是錯誤我收到:

{ 
    "stackTrace": [ 
    [ 
     "/var/task/Create_Spot_Test.py", 
     15, 
     "my_handler", 
     "'spot_id':{'S' : str(spot_id)}," 
    ], 
    [ 
     "/usr/lib64/python2.7/locale.py", 
     303, 
     "str", 
     "return format(\"%.12g\", val)" 
    ], 
    [ 
     "/usr/lib64/python2.7/locale.py", 
     196, 
     "format", 
     "return _format(percent, value, grouping, monetary, *additional)" 
    ], 
    [ 
     "/usr/lib64/python2.7/locale.py", 
     202, 
     "_format", 
     "formatted = percent % value" 
    ] 
    ], 
    "errorType": "TypeError", 
    "errorMessage": "float argument required, not UUID" 
} 

回答

1

from locale import str不需要(被進口對以前的錯誤)

你也必須首先聲明uuid = uuid.uuid4()作爲一個變量,然後聲明另一個變量將其轉換爲字符串spot_id = str(uuid),而不是運行str()在線。