PUT 요청을 사용하여 오브젝트로리스트를 갱신하려면 Flask Restful을 사용하고 싶습니다.플라스크 안정된 PUT 업데이트리스트와 오브젝트
{"EmployeeID":"12345", "firstname":"Joe","lastname":"Bloggs","SupervisorName":"Name","SupervisorID":"2468","role":"Role","active":"True","hours":["{'date':'01/01/2017','qty':'3','project':'Project 1'}"]"}
json으로의 시간 필드 목록은 다음과 같은
결과 JSON이 보일 것입니다. 목표는 각 PUT 요청의 목록에 개체를 추가하는 것입니다.
시간의 파서는 다음과 같습니다
parser.add_argument('hours', action='append')
put 메소드의 코드는 다음과 같습니다
def put(self, EmployeeID=None):
data = parser.parse_args()
if not data:
data = {'ERROR': 'No Data'}
return jsonify(data)
else:
if EmployeeID:
if mongo.db.employee.find_one({'EmployeeID': EmployeeID}):
mongo.db.employee.update_one({'EmployeeID': EmployeeID}, {set: {"hours": data.get('hours')}})
return {'response': 'Employee:'+str(EmployeeID)+' updated'}
else:
return {'Error': 'employee ' + str(EmployeeID) + ' not found'}
else:
return {'response': 'Employee ID missing'}
가 update_one 방법 여기에 사용할 수있는 권리 중 하나인가? 컬 PUT 요청을 사용하여
:
curl -H "Content-type: application/json" -X PUT -d '{"EmployeeID":"1234",...,"hours":{'time':'','qty':'3','project':'Project 1'}}' http://127.0.0.1:5000/api/people/1234
오류 준 :
{
"message": "Failed to decode JSON object: Expecting property name enclosed in double quotes: line 1 column 168 (char 167)"
}
을하지만 요청에 견적을 추가 할 때 오류 반환 :
{
"message": "Failed to decode JSON object: Unterminated string starting at: line 1 column 167 (char 166)"
}
내가 할 수있는을 요청에 문제가 있는지 아니면 실제 Flask-Restful 코드가 있는지 파악하지 마십시오.
Mongo 문서 목록을 개체로 업데이트하는 올바른 방법은 무엇입니까?
했다 다음 몽고 업데이트를 사용하여 = 액션을 제거 'APPEND'다음
을
:
은 내가 RequestParser을 변경했다 그런 다음 업데이트 방법을 mongo.db.employee.update_one ({ 'EmployeeID': EmployeeID}, { '$ set': { "hours": data.get ('hours')}}로 변경하십시오. – Bchadwick불행히도이 방법으로 덮어 씁니다 현재의 objec t, I 그런 다음 '$ addToSet'메서드를 사용해 보았습니다. 그러나 이것은 기존 목록에있는 객체를 포함하는 새로운 목록을 추가했습니다. – Bchadwick
올바른 해결책을 찾으면 답변을 추가합니다. – Bchadwick