Google App Engine에서 JSON을 어떻게 파싱 할 수 있습니까?


81

JSON 문자열을 Google App Engine (python)의 개체로 구문 분석하고 싶습니다. 추천 메뉴가 무엇인가요? 인코딩 / 스트링 화하는 것도 좋을 것입니다. 추천하는 것이 내장되어 있습니까, 아니면 앱에 포함해야하는 라이브러리입니까? 안전합니까? 감사.


Python이 스택에있는 경우 어떤 버전입니까?

파이썬 2.5 여야하는 앱 엔진 버전 1을 사용하고 있습니다.
Nogwater 2009-07-23

답변:


114

GAE에 포함 된 Django의 json lib 사용을 고려하십시오 .

from django.utils import simplejson as json

# load the object from a string
obj = json.loads( string )

위의 링크에는 Django의 serializer 예제가 있으며 여기에 simplejson의 문서에 대한 링크 가 있습니다 .

Python 클래스 인스턴스 또는 객체를 저장하려는 경우 (목록, 문자열, 숫자 및 사전의 구성과 반대로) 아마도 pickle 을보고 싶을 것입니다 .

도움이 되었기를 바랍니다.

덧붙여서 GAE에서 Django 1.0 (Django 0.96 대신)을 실행하려면 이 기사 에 따라 main.py에서 다음 호출을 사용할 수 있습니다 .

from google.appengine.dist import use_library
use_library('django', '1.0')

편집 : Python 2.7을 사용하는 Google App Engine 1.6.0의 기본 JSON 지원

구글 앱 엔진 1.6.0로, 당신은 할 수 있습니다 파이썬 2.7 런타임을 사용하여 추가 runtime: python27app.yaml, 그리고 당신과 함께 네이티브 JSON 라이브러리를 가져올 수 있습니다 import json.


좋은 대답입니다. 많은 도움이되었습니다. 여기에 댓글 만 남겨주세요. json 가져 오기 기능을 사용하면 앱을 배포 할 때 500 서버 오류가 발생합니다. 하지만 from django.utils import simplejson as json을 사용하면 완벽하게 작동합니다.
Jose Garrido

22

Google App Engine은 이제 python 2.7을 지원합니다. Python 2.7을 사용하는 경우 다음을 수행 할 수 있습니다.

import json
structured_dictionary = json.loads(string_received)


2

이것은 오래된 질문이지만 업데이트되고 더 자세한 답변을 줄 것이라고 생각했습니다. 지금 여기에 온 사람들에게는 거의 확실하게 Python 2.6 이상을 사용하고 있으므로 Python 2 (또는 Google이 최근 GAE에서 Python 3에 대한 지원을 추가했기 때문에 Python 3의 경우)에 내장 된 json 모듈 사용할 수 있습니다 . 가져 오기는 import json. 다음은 json 모듈을 사용하는 방법의 몇 가지 예입니다.

import json

# parse json_string into a dict
json_string = '{"key_one": "value_one", "key_two": 1234}'
json_dict = json.loads(json_string)
# json_dict: {u'key_two': 1234, u'key_one': u'value_one'}

# generate json from a dict
json_dict = {'key': 'value', 'key_two': 1234, 'key_three': True}
json_string = json.dumps(json_dict)
# json_string: '{"key_two": 1234, "key": "value", "key_three": true}'

이전 버전의 Python을 사용하는 경우 @Brian M. Hunt의 답변을 고수하십시오.

다시 말하지만, 여기에 Python 2 용 json 모듈에 대한 문서 페이지가 있으며 여기에는 Python 3 용이 있습니다 .


1

Python2.6 이상을 사용하는 경우 기본 제공 json .load 함수 를 성공적으로 사용했습니다 . 그렇지 않으면 simplejson 은 종속성없이 2.4에서 작동합니다.


0

json.org 의 python 섹션을 보십시오 . JSON에 대한 표준 라이브러리 지원은 앱 엔진이 제공하는 것보다 더 새로운 python 2.6에서 시작되었습니다. 나열된 다른 옵션 중 하나일까요?


4
App Engine과는 관련이 없습니다.
Tim McNamara
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.