반응형
앱 엔진 Python webapp2에서 JSON을 올바르게 출력하는 방법
지금은 이렇게 하고 있습니다.
self.response 입니다.headers['Content-Type'] = '어플리케이션/json'self.response.out 입니다.write{{"success": "some var", "success": "some var"})
도서관을 이용해서 할 수 있는 더 좋은 방법이 있을까요?
예, Python 2.7에서 지원되는 라이브러리를 사용해야 합니다.
import json
self.response.headers['Content-Type'] = 'application/json'
obj = {
'success': 'some var',
'payload': 'some var',
}
self.response.out.write(json.dumps(obj))
webapp2
json 모듈용 편리한 래퍼가 있습니다.사용 가능한 경우 simplejson, 사용 가능한 경우 Python > = 2.6의 json 모듈을 사용하고 App Engine의 마지막 리소스로 django.sys.djson 모듈을 사용합니다.
http://webapp2.readthedocs.io/en/latest/api/webapp2_extras/json.html
from webapp2_extras import json
self.response.content_type = 'application/json'
obj = {
'success': 'some var',
'payload': 'some var',
}
self.response.write(json.encode(obj))
python 자체에는 JSON 모듈이 있어 JSON이 올바르게 포맷되어 있는지 확인할 수 있으며 손으로 쓴 JSON은 오류가 발생하기 쉽습니다.
import json
self.response.headers['Content-Type'] = 'application/json'
json.dump({"success":somevar,"payload":someothervar},self.response.out)
저는 보통 다음과 같이 사용합니다.
class JsonEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
return obj.isoformat()
elif isinstance(obj, ndb.Key):
return obj.urlsafe()
return json.JSONEncoder.default(self, obj)
class BaseRequestHandler(webapp2.RequestHandler):
def json_response(self, data, status=200):
self.response.headers['Content-Type'] = 'application/json'
self.response.status_int = status
self.response.write(json.dumps(data, cls=JsonEncoder))
class APIHandler(BaseRequestHandler):
def get_product(self):
product = Product.get(id=1)
if product:
jpro = product.to_dict()
self.json_response(jpro)
else:
self.json_response({'msg': 'product not found'}, status=404)
import json
import webapp2
def jsonify(**kwargs):
response = webapp2.Response(content_type="application/json")
json.dump(kwargs, response.out)
return response
json 응답을 반환하고 싶은 모든 장소...
return jsonify(arg1='val1', arg2='val2')
또는
return jsonify({ 'arg1': 'val1', 'arg2': 'val2' })
언급URL : https://stackoverflow.com/questions/12664696/how-to-properly-output-json-with-app-engine-python-webapp2
반응형
'programing' 카테고리의 다른 글
Ckeditor 값을 Angular의 모델 텍스트에 바인딩JS 및 레일 (0) | 2023.03.09 |
---|---|
Spring Boot에서 Rest Web Service에 걸린 시간을 기록하는 방법 (0) | 2023.03.09 |
소품으로 전달된 React 요소에 소품을 추가하는 방법은 무엇입니까? (0) | 2023.03.09 |
"안전" TO_NUMBER() (0) | 2023.03.09 |
반응에서 Esc 키 누름 감지 방법 및 처리 방법 (0) | 2023.03.09 |