2017-04-10 67 views
0

我有以下几点:的Python:转换列表与dict(API POST)

ra_int_tuples = set((d['name'], d['ipv4addr']) for d in ra_int) 
    print(ra_int_tuples) 
    ra_ext_tuples = set((d['name'], d['ipv4addr']) for d in ra_ext) 
    print(ra_ext_tuples) 

    new_addresses = [t for t in ra_int_tuples if t not in ra_ext_tuples] 

    print(new_addresses) 

这将返回:

[( 'test-rz-01.test.de','10 0.60 .1.100 '),(' test2.test.de”,'10 .60.1.10' )]

我需要将其转换成JSON(这样我就可以回发到API)。 我的理解是,最好使用一个字典,所以我用:

d = dict([(k, v) for k, v in zip(new_addresses[::2], new_addresses[1::2])]) 

,但是这给了我:

{( 'test-rz-01.test.de','10 .60.1.100 '):(' test2.test.de”,'10 .60.1.10 ')}

代替:

{(' test-rz-01.test.de ':' 10.60.1。 100'),('test2.test.de': '10 .60.1.10')}

我敢肯定我很明显失去了一些东西。

回答

3

你不需要理解。 dict可以处理元组列表:

d = dict([('test-rz-01.test.de', '10.60.1.100'), ('test2.test.de', '10.60.1.10')]) 
# {'test-rz-01.test.de': '10.60.1.100', 'test2.test.de': '10.60.1.10'} 
+0

谢谢,我也看到了这一点。 – f0rd42