2010-06-19 4 views
4

JSON 오브젝트로 구문 분석 될 데이터 구조를 작성하려고합니다. 출력은 이와 같이 보일 것입니다. 이것은 동적 인 데이터 구조 여야합니다.파이썬 | 복잡한 사전을 작성하는 방법

{"data": [{"type": "locale", "lat": -34.43778387240597, "lon": 150.04799169921876}, 
{"type": "poi", "lat": -34.96615974838191, "lon": 149.89967626953126}, 
{"type": "locale", "lat": -34.72271328279892, "lon": 150.46547216796876}, 
{"type": "poi", "lat": -34.67303411621243, "lon": 149.96559423828126}]} 

저는이 데이터 구조를 구현하는 중에 어려움을 겪고 있습니다. 좋은 아이디어가 예상됩니다.

감사합니다.

답변

3

귀하의 질문은 불분명하지만, 당신은 아마 이런 식으로 뭔가 싶어 :

>>> r = DataResult() 
>>> r.add_poi(-34.96615974838191, 149.89967626953126) 
>>> r.add_locale(-34.72271328279892, 150.46547216796876) 
>>>r.add_poi(-34.67303411621243, 149.96559423828126) 

>>> print r 
{"data": [{"type": "locale", "lat": -34.43778387240597, "lon": 150.04799169921876}, 
{"type": "poi", "lat": -34.96615974838191, "lon": 149.89967626953126}, 
{"type": "locale", "lat": -34.72271328279892, "lon": 150.46547216796876}, 
{"type": "poi", "lat": -34.67303411621243, "lon": 149.96559423828126}]} 

DataResult 클래스를 만들고 __str__ 또는 __unicode__ 메서드를 재정 의하여이를 만들 수 있습니다.

귀하의 add_poi 할 수있는 일이 같은 : PoiData 유형 "POI"의 데이터 항목을 나타내는 또 다른 클래스이다

def add_poi(self, lat, lon): 
    self.append(PoiData(lat, lon)) 

0

정확히 무엇을 의미합니까? dicts와 목록으로 구성된 데이터 구조를 만든 경우 (예 : 지정한 것) the json package을 사용하여 JSON 객체로 파싱 할 수 있습니다.

+0

예, 할 수 있습니다하지만 내 문제는 데이터를 생성한다 구조. – Switch

5

Mathiasdm에 대한 답변 : 사전 목록으로 사전을 만드는 방법을 의미합니까? 다음과 같이 수행 할 수 있습니다 :

dict = {} 
dict["data"] = [] 
dict["data"].append({'type': 'poi', 'lat': 123}) 
dict["data"].append({'type': 'locale', 'lat': 321}) 

등등.

하지만이 정말 문제가 있다면, 나는 다시 목록 및 사전에 대한 참조를 읽어 제안 : http://docs.python.org/tutorial/datastructures.html

관련 문제