2016-07-19 2 views
1

난 형식 장고 request.POST을 얻고 : { 'a'는 1, '의 B를 [C] : 2 '의 B [D] : 3 '의 B를 [E] 4, '[g] F': 5 '[H] (F) : I는 형식 딕셔너리 얻을 수 있도록 6 }Python-Django에서 요청 데이터를 어떻게 파싱합니까?

가 어떻게 파싱 않습니다 { 을'A ': 1 'B'{ 'C': 2 'D': 3 'E': 4 } 'F': { 'g'5,536,'h': 6 } }

Django/Python의 어떤 항목이 누락 되었습니까?

TIA (파이썬 2.7, 장고 1.8 사용)

+2

을 시도 않았다을? 코드를 게시하십시오 – wolendranh

+0

@wolendranh : simplejson 라이브러리 및 일반 요청 라이브러리에있는 모든 것을 시도했습니다. PHP는 이러한 종류의 데이터를 읽을 수있는 inbuilt 지원을 가지고 있습니다. 파이썬에도 비슷한 점이 있는지 이해하려고 시도합니다. – zankalp

+4

이것을 파싱하기보다는 먼저 올바른 형식으로 보내야합니다. 이 데이터를 보내는 이유는 무엇이며 표준 형식으로 인코딩 된 데이터 또는 JSON을 사용하지 않는 이유는 무엇입니까? –

답변

0

당신이 비슷한 사용할 수 있습니다 당신은 이미 무엇을

d = { 'a': 1, 'b[c]': 2, 'b[d]': 3, 'b[e]': 4, 'f[g]': 5, 'f[h]': 6 } 

def parse_post_dict(d): 
    new_d = {} 
    for key in d.iterkeys(): 
     if "[" in key and "]" in key: 
      key_split = key.split("[") 
      outer_key = key_split[0] 
      inner_key = key_split[1].replace("]", "") 

      if outer_key not in new_d: 
       new_d[outer_key] = {} 

      new_d[outer_key][inner_key] = d[key] 
     else: 
      new_d[key] = d[key] 

    return new_d 


print parse_post_dict(d) 
+0

고마워,하지만 [이] (https://github.com/bernii/querystring-parser) 솔루션으로 갔다. – zankalp

관련 문제