나는 끔찍한 명백한 것을 놓치고있는 것처럼 느껴진다. 그러나 나는 그것을 볼 수 없다. ipython에서 Django의 GET 요청에서 JSON 문자열을 어떻게 역 직렬화합니까?
(파이썬 2.7),이 작품 :In [1]: json.loads('[]')
Out[1]: []
나는 실제 데이터로 이동하기 전에 내가 JSON을 읽을 수있는 자신을 설득, 장고보기에 해당하는 최소한의 예를 할 노력하고있어 구조 :
def submit(request):
json_string = request.GET['json']
parsed = json.loads(json_string)
return HttpResponse(parsed)
내가
http://localhost:8001/submit/?json='[]'
로 이동하여 브라우저에서 호출 내가를 얻을 수.
내가 뭘 잘못하고 어떻게 디버깅합니까? 어떤 종류의 인코딩 문제입니까? 또는 GET의 내용에 잘못 액세스하고 있습니까? 또는 다른 것?
나는 파일과 HttpResponse 모두 변수 json_string
을 덤프 해 보았습니다. 확인 가 벌금을 보이는 내가 '[]'
수 두 배 ...
편집 : 게시물을 디버깅하는 방법 궁금 다른 초보자의 이익을 위해
는 장고의 오류 페이지는 예외가 반환됩니다. 작동되는 빠르고 불쾌한 해킹은
import os
def debug_post(post_req):
result = None
try:
result = submit_to_endpoint(post_req)
except urllib2.URLError as e:
out_fh = open('debug_post.tmp', 'w')
out_fh.write(e.read())
out_fh.close()
os.system('firefox ' + 'debug.tmp')
return result
'? json = []'은 어떻습니까? –
oO POST를 사용하지 않는 이유는 무엇입니까? –
@BasicWolf - 아니요. 테스트를 위해 더 간단 해 보였습니다. 클라이언트의 인코딩 된 URL을 잘라내어 브라우저에 직접 붙여 넣을 수 있습니다. POST가 더 나은 선택입니까? 왜? –