2015-01-07 74 views
0

我json.dumps代碼:json.dumps需要額外的 「」 條目之間

print json.dumps({'cidr': item, 'name': 'Malware'}, sort_keys=True, indent=4, separators=(', ', ': ')) 

做工精細,到目前爲止,它輸出:

{ 
    "cidr": "98.131.229.2/32", 
    "name": "Malware" 
    } 
    { 
    "cidr": "98.158.178.231/32", 
    "name": "Malware" 
    } 

我需要兩個額外的東西

  • 開合支架[ ](第一行和最後一行)
  • 附加有理項

我試過之間,是一個循環,但帶給我額外的,也是在年底(就在收盤前]

所以,到最後,我需要一個像輸出:

[ 
{ 
    "cidr": "98.131.229.2/32", 
    "name": "Malware" 
} 
, 
{ 
    "cidr": "98.158.178.231/32", 
    "name": "Malware" 
} 
] 

我可以使用標準的兒子工具來做到這一點,還是我需要運行其他的東西?

我不使用字典。全碼:

malwareurl = "http://www.malwaredomainlist.com/hostslist/ip.txt" # URL to TXT file 

    print "Downloading with urllib2" 
    f = urllib2.urlopen(malwareurl) 
    result = f.read().split("\r\n") 
    ips = [x + "/32" for x in result if x] 

    for item in ips: 
     print json.dumps({'cidr': item, 'name': 'Malware'}, sort_keys=True, indent=4, separators=(', ', ': ')) 
+0

你舉的例子顯示了一個傾銷字典,但返回兩個詞典。我認爲你沒有向我們展示你的所有代碼。 –

+0

:-)謝謝@Bryan Oakley – f0rd42

+0

我添加了完整的代碼 – f0rd42

回答

3

的解決方案是建立一個列表,然後將該列表轉儲:

result = [] 
for item in ips: 
    result.append({'cidr': item, 'name': 'Malware'}) 

print json.dumps(result)