2012-06-05 46 views
13

Tôi có đối tượng json sau trong python:python gắn liền với các mảng trong đối tượng json

jsonobj = { 
      "a": { 
       "b": { 
         "c": var1, 
         "d": var2, 
         "e": [], 
        }, 

       }, 
      } 

Và tôi muốn thêm yếu tố quan trọng có giá trị thành "e", nhưng không thể tìm ra cú pháp cho nó. Tôi đã cố gắng phụ thêm với những điều sau đây, nhưng nó không đi ra đúng với các dấu ngoặc và dấu ngoặc kép:

jsobj["a"]["b"]["e"].append("'f':" + var3) 

Thay vào đó, tôi muốn "e" để được như sau:

"e":[ 
     {"f":var3, "g":var4, "h":var5}, 
     {"f":var6, "g":var7, "h":var8}, 
    ] 

Có ai biết đúng cách để nối thêm vào mảng json này? Đánh giá cao.

+4

Về mặt kỹ thuật, đây không phải là một đối tượng JSON (mặc dù nó được định dạng theo kiểu JSON), nó là một dict python. Nó không phải là "sắp ra đúng với dấu ngoặc đơn và dấu ngoặc kép" bởi vì bạn đang 'append()' nhập một chuỗi vào giá trị từ điển '[]'. –

Trả lời

20
jsobj["a"]["b"]["e"].append({"f":var3, "g":var4, "h":var5}) 
jsobj["a"]["b"]["e"].append({"f":var6, "g":var7, "h":var8}) 
6

Chỉ cần thêm dictionnary như một đối tượng dictionnary không phải là một chuỗi:

jsobj["a"]["b"]["e"].append(dict(f=var3)) 

Full source:

var1 = 11 
var2 = 32 
jsonobj = {"a":{"b":{"c": var1, 
        "d": var2, 
        "e": [], 
        }, 
       }, 
      } 
var3 = 444 
jsonobj["a"]["b"]["e"].append(dict(f=var3)) 

jsonobj sẽ chứa:

{'a': {'b': {'c': 11, 'd': 32, 'e': [{'f': 444}]}}} 
1
jsonobj["a"]["b"]["e"] += [{'f': var3, 'g' : var4, 'h': var5}, 
          {'f': var6, 'g' : var7, 'h': var8}] 
+1

Có phương pháp [mở rộng] (http://docs.python.org/tutorial/datastructures.html#more-on-lists) cho điều đó. – DrTyrsa

Các vấn đề liên quan