2016-11-17 63 views
0

我想附加JSON對象來形成JSON對象的列表。如何將JSON對象追加到列表中?

def GenIndentifier(options): 
    data=json.dumps([identifier,hex_dig]) 
    return data 

這裏的數據是有效的JSON對象如下:

["27780741708467800000001", "e5073922dbb7a278769d52277d49c6ad3017b1ba"]

之後,我遍歷GenIdentifier函數生成許多JSON對象:

data=[] 
for i in range(0,2,1): 
    ... 
    data.append(GenIndentifier(options)) 
print data 

現在JSON數據列表不是有效的JSON格式,因爲會彈出一些單引號:

['["27780741708467800000000", 
"f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d"]', 
'["27780741708467800000001",  
"e5073922dbb7a278769d52277d49c6ad3017b1ba"]'] 

任何想法如何解決? 我搜索了谷歌搜索,但徒勞無功。

+1

這似乎並沒有被JSON數據。你正在使用的是簡單的列表。 JSON通常遵循鍵值格式。 –

+1

@PrateekDewan廢話。原始值是完全有效的JSON。 –

+0

http://www.w3schools.com/js/js_json_syntax.asp我會讓你決定 –

回答

2

問題在於您正在將數據轉儲到GenIndentifier內部的JSON,然後將該JSON字符串附加到列表中。

相反,你應該移動JSON轉換的是功能,和做底:

def GenIndentifier(options): 
    data = [identifier, hex_dig] 
    return data 

data = [] 
for i in range(0, 2, 1): 
    ... 
    data.append(GenIndentifier(options)) 
data = json.dumps(data) 
print data 
+0

感謝您的建議:有輸出 '[[ 「27780741708467800000000」, 「f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d」],[ 「27780741708467800000001」, 「e5073922dbb7a278769d52277d49c6ad3017b1ba」]]」 一個有效的JSON,但有兩個額外的單引號 –

+0

這看起來有效的給我。單引號只是表明整個事情是一個字符串,當然? –

+0

是的,你是對的。非常感謝你的幫助! –

-2

這是否工作?

data=[] 
for i in range(0,2,1): 
    ... 
    data.append(GenIndentifier(options)[i]) 
print data 
  • 通知我添加了[I],這樣您將索引到的數據,你追加之前。
+0

現在,您正在索引'append'的返回值,即'None'。 – jojonas

+0

您的權利,我做了這個很快,讓我修復它 –

+0

有@jojonas應該修復它,我把[i]移動到括號中,因爲它應該是 –

0

當你調用json.dumps()這兩個元素的列表轉換對象,在這種情況下,一個JSON格式化的字符串。然後您將該字符串列表添加到列表中。

如果您要查找的是單個JSON格式的列表清單,您應該避免在GenIdentifier對象內執行json.dumps(),並且只需從該函數返回一個列表即可。然後在最後,你做print data,而不是做print json.dumps(data)

def GenIndentifier(options): 
    data=[identifier,hex_dig] 
    return data 

data=[] 
for i in range(0,2,1): 
    ... 
    data.append(GenIndentifier(options)) 
data = json.dumps(data) 
print data 

這將導致如下:

[["27780741708467800000000", "f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d"], 
["27780741708467800000001", "e5073922dbb7a278769d52277d49c6ad3017b1ba"]] 
+0

感謝您的建議:還有就是輸出「[‘27780741708467800000000’,‘f798d2cd9aec1b98fb48b34fd249fe19c06a4a1d’],[‘27780741708467800000001’,‘e5073922dbb7a278769d52277d49c6ad3017b1ba’]]」 一個有效的JSON,但有兩個額外的單引號 –

+0

單引號來自事實上'json.dumps'返回一個字符串,並且當你打印一個字符串對象時,它被包裹在單引號中。 –

+0

要修復,只需更改打印行。 –