2016-04-23 35 views
0

我在Python此詞典:Python的元組到JSON結構

[('157.55.39.64', 4), ('188.165.15.192', 2), ('1.165.15.192', 1)] 

其中第一字段是一個IP地址和另一個表示多少次是存在於一個文件中。

我想有像這樣一個JSON表示:

[{"ip":"157.55.39.64","times":4}, 
    {"ip":"188.165.15.192","times":2}, 
    {"ip":"1.165.15.192","times":1}] 

我嘗試使用jsonify(字典),但我得到這個:

{"157.55.39.64":4, "188.165.15.192": 2, "1.165.15.192":1} 

這是唯一一個JSON項目。我不知道如何把字符串「ip」和「times」放在json文件中。

任何幫助?

+0

您最初的結構是一個元組列表JSON。不是字典。 – idjaw

回答

3

如果您的原始結構被稱爲ips,你可以得到你需要

ips = [('157.55.39.64', 4), ('188.165.15.192', 2), ('1.165.15.192', 1)] 
json.dumps([{"ip": ip[0], "times": ip[1]} for ip in ips]) 

輸出將被

[ 
    { 
     "ip": "157.55.39.64", 
     "times": 4 
    }, 
    { 
     "ip": "188.165.15.192", 
     "times": 2 
    }, 
    { 
     "ip": "1.165.15.192", 
     "times": 1 
    } 
] 
0

使用列表理解將數據轉換爲所需格式並嘗試使用jsonify

data = [('157.55.39.64', 4), ('188.165.15.192', 2), ('1.165.15.192', 1)] 
data = [{"ip": ip, "times": times} for ip, times in data] 

現在,使用jsonify到此列表轉換成json