2016-07-19 13 views
1

Ich erhalte die django request.POST im Format: { 'A': 1, 'b [C]': 2, 'b [d]': 3, 'b [e]' : 4, 'f [g]': 5, 'f [h]: 6 }Wie analysiere ich Anfragedaten in Python-Django?

Wie analysieren wir es so, dass ich ein dict im Format erhalten: { 'a': 1, 'b': { 'c': 2, 'd': 3, 'e': 4 }, 'f': { 'g': 5, 'h': 6 } }

Gibt es etwas aus der Box in Django/Python, die ich vermisse? (mit Python 2.7, Django 1.8)

TIA

+2

Was haben Sie schon versucht? Bitte posten Sie Ihren Code – wolendranh

+0

@wolendranh: Versucht alles in Simplejson Bibliothek und normalen Anfragen Bibliothek Zeug. PHP hat eingebaute Unterstützung, um diese Art von Daten zu lesen. Versuchen zu verstehen, ob Python auch etwas ähnliches hat. – zankalp

+4

Anstatt dies zu analysieren, sollten Sie es im richtigen Format senden, um damit zu beginnen. Was ist das Senden dieser Daten und warum verwendet sie nicht entweder formularcodierte Standarddaten oder JSON? –

Antwort

0

Sie etwas Ähnliches wie diese verwenden:

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

Vielen Dank, aber ich ging mit [dieser] (https://github.com/bernii/querystring-parser) Lösung. – zankalp