2017-12-28 35 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()와 같은 성 ') 성별 = 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'> 

발전기 데이터베이스에 레코드를 삽입하려면 fatherName을 어떻게 무시할 수 있습니까? 페이로드로 보낸 모든 레코드를 업데이트하려고합니다.

답변

0

누락 된 매개 변수를 없음으로 설정하는 대신 빈 문자열로 설정하십시오. 예를 들면 다음과 같습니다.

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

두 번째 인수는 지정된 키를 찾을 수없는 경우 기본값을 반환합니다.