2017-12-28 22 views
0

私はダイナモデータベースにレコードを挿入するエンドポイントを持って、DynamoDBの、フラスコに新しいです、私のペイロードは、このフラスコAWSダイナモDB:POSTは、API

{ 
    "Address": "2013 3A New Jersey", 
    "Contact_Number1": "1105632", 
    "Contact_Number2": "1105632", 
    "DOB": "1968-08-12", 
    "Father": "FTest2", 
    "First_name": "FTest2", 
    "Gender": "Male", 
    "Hospital_Reg_Num": "HRM123", 
    "Husband": "HTest2", 
    "Last_name": "LTest2", 
    "Last_visit_date": "2017-11-12", 
    "Mother": "MTest2", 
    "patient_id": "100" 
} 

と私のflaska APIコードがあるように見えています 試し: のuserId = request.json.get( 'USER_ID') のfirstName = request.json.get( 'first_nameの') lastNameの= request.json.get(」この

デフcreatePatient()のようなLast_name ') gender = request.json.get('性別 ') DOB = request.json.get KeyError例外を除いて( 'DOB'): 昇給InvalidUsage( '不正な要求'、STATUS_CODE = 400)

print(request.json) 
father = request.json.get('Father') if 'Father' in request.json else None 
mother = request.json.get('Mother') if 'Mother' in request.json else None 
husband = request.json.get('Husband') if 'Husband' in request.json else None 
address = request.json.get('Address') if 'Address' in request.json else None 
lastVisitDate= request.json.get('Last_visit_date') if 'Last_visit_date' in request.json else None 

#create a new db entry 
userData = { 
    'user_id': { 'N': userId }, 
    'First_name': { 'S': firstName }, 
    'Last_name': { 'S': lastName }, 
    'Hospital_Reg_Num': { 'S': hospitalReg }, 
    'Gender': { 'S': gender }, 
    'DOB': { 'S': dob }, 
    'Father': { 'S': father }, 
    'Mother': { 'S': mother }, 
    'Husband': { 'S': husband }, 
    'Address': { 'S': address }, 
    'Last_visit_date': { 'S': lastVisitDate } 
} 

resp = client.put_item(TableName='user',Item=userData) 
return jsonify(resp), 200 

ペイロードに私はすべてのパラメータは、その後、父の名をそのないと言う逃した場合そのは私にエラー

Invalid type for parameter Item.Father.S, value: None, type: <class 'NoneType'>, valid types: <class 'str'> 

を与え、他のレコードを挿入すると、私はダイナモDBにレコードを挿入するfatherNameを無視することができますどのように私を助けてくださいことはできますか?ペイロードによって送信されたものを更新したい

答えて

0

欠落しているパラメータをNoneに設定する代わりに、空の文字列として設定します。例:

father = request.json.get(‘Father’, ‘’) 

第2引数は、指定されたキーが見つからない場合にデフォルト値を返します。

関連する問題