Advertisement
Guest User

Eric Palakovich Carr

a guest
Jul 16th, 2010
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. from pprint import pprint
  2.  
  3. formdata = [
  4.     # last: dict -> formdata[name] = 'roel kramer'
  5.     {"formname": "name", "formvalue": "Roel Kramer"},
  6.     {"formname": "email", "formvalue": "contact@roelkramer.nl"},
  7.     {"formname": "paragraph-0.title", "formvalue": "test titel 1"},
  8.     {"formname": "paragraph-0.body", "formvalue": "bla bla body 1"},
  9.     {"formname": "paragraph-0.image-0.src", "formvalue": "src 1"},
  10.     {"formname": "paragraph-0.image-1.src", "formvalue": "src 2"},
  11.     {"formname": "paragraph-1.title", "formvalue": "test titel 2"},
  12.     {"formname": "paragraph-1.body", "formvalue": "bla bla body 2"},
  13.     {"formname": "paragraph-1.image-0.src", "formvalue": "src 3"},
  14.     {"formname": "paragraph-1.image-1.src", "formvalue": "src 4"},
  15.     {"formname": "paragraph-1.image-2.src", "formvalue": "src 5"},
  16.     {"formname": "paragraph-2.title", "formvalue": "test titel 3"},
  17.     {"formname": "paragraph-2.body", "formvalue": "bla bla body 3"},
  18.     {"formname": "paragraph-2.image-0.src", "formvalue": "src 6"},
  19.     {"formname": "paragraph-2.image-1.src", "formvalue": "src 7"},
  20. ]
  21.  
  22. json_data = {}
  23.  
  24. def add_data(node, name, value):
  25.     if '-' not in name:
  26.         node[name] = value
  27.     else:
  28.         key = name[:name.index('-')]
  29.         node_index = int(name[len(key) + 1:name.index('.')])
  30.         node.setdefault(key, [])
  31.         if node_index >= len(node[key]):
  32.             node[key].append({})
  33.         add_data(node[key][node_index],
  34.                  name[name.index('.') + 1:],
  35.                  value)
  36.  
  37. for data in formdata:
  38.     add_data(json_data, data['formname'], data['formvalue'])
  39.    
  40. pprint(json_data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement