簡體   English   中英

從列表中提取數據

[英]Extracting data from a list

嗨,大家好,想知道是否可以將下面的列表轉換成字典,我知道它原來是字典,但是現在顯示為列表,如果可以轉換,那將是最簡單的方法

我已經嘗試過d = dict(zip(*[iter(list[0])]*2))但這不起作用

這是清單:

[[{'identityb32': 'qa46imyg4njipjsgpudn7vnn2zub2tec', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '18.238.2.85', 'orport': '443', 'identityhash': '8039e43306e35287a6467d06dfd5add6681d4c82', 'nick': 'Onions', 'version': 'Tor 0.2.3.25', 'flags': ['Exit', 'Fast', 'HSDir', 'Running', 'V2Dir', 'Valid'], 'identity': '\x809\xe43\x06\xe3R\x87\xa6F}\x06\xdf\xd5\xad\xd6h\x1dL\x82', 'digest': 'lh2LprFLd0bdvtIfPkz58//mgZk', 'pubtime': '09:37:21'}, {'identityb32': 'qbwfsrn3y5mmcnshotg77clvxjufngso', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '109.120.148.60', 'orport': '443', 'identityhash': '806c5945bbc758c1364774cdff8975ba68569a4e', 'nick': 'Reactor', 'version': 'Tor 0.2.4.22', 'flags': ['Exit', 'Fast', 'HSDir', 'Running', 'V2Dir', 'Valid'], 'identity': '\x80lYE\xbb\xc7X\xc16Gt\xcd\xff\x89u\xbahV\x9aN', 'digest': 'bDAS/RN7q4injGzkIXobcsSwS6c', 'pubtime': '08:55:57'}, {'identityb32': 'qcrds2ps562vf3ctnuoob4lgtmvt4zau', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '195.154.12.66', 'orport': '9001', 'identityhash': '80a23969f2efb552ec536d1ce0f1669b2b3e6414', 'nick': 'han1', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x80\xa29i\xf2\xef\xb5R\xecSm\x1c\xe0\xf1f\x9b+>d\x14', 'digest': 'FoPXNW58WS4eoCWB/eIK7j5yS4E', 'pubtime': '01:09:22'}], [{'identityb32': 'rzjbswyebloufopae2j46a6272wrwlae', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '77.247.181.164', 'orport': '443', 'identityhash': '8e52195b040add42b9e02693cf03dafead1b2c04', 'nick': 'rainbowwarrior', 'version': 'Tor 0.2.5.3-alpha', 'flags': ['Exit', 'Fast', 'Guard', 'HSDir', 'Running', 'Stable', 'Unnamed', 'V2Dir', 'Valid'], 'identity': '\x8eR\x19[\x04\n\xddB\xb9\xe0&\x93\xcf\x03\xda\xfe\xad\x1b,\x04', 'digest': '67A4paMg3mQUqHei8jNSWR2QWsg', 'pubtime': '08:29:31'}, {'identityb32': 'rzniakcq6yj3xdbk766e4yuspkhm2bq2', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '212.116.188.158', 'orport': '9001', 'identityhash': '8e5a802850f613bb8c2affbc4e62927a8ecd061a', 'nick': '7sYiz', 'version': 'Tor 0.2.3.25', 'flags': ['Exit', 'Fast', 'Guard', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x8eZ\x80(P\xf6\x13\xbb\x8c*\xff\xbcNb\x92z\x8e\xcd\x06\x1a', 'digest': '5+O3G9AMJujmUVxO3Fhz7MSPpHI', 'pubtime': '12:34:28'}, {'identityb32': 'rzs3murcnwhdeyj6blsfj7ipltbpmn44', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '176.31.122.216', 'orport': '9001', 'identityhash': '8e65b652226d8e32613e0ae454fd0f5cc2f6379c', 'nick': 'somewhere', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Running', 'Stable', 'Unnamed', 'V2Dir', 'Valid'], 'identity': '\x8ee\xb6R"m\x8e2a>\n\xe4T\xfd\x0f\\\xc2\xf67\x9c', 'digest': 'lEgmmiJcOvzsib9fZjgaxaSG6to', 'pubtime': '03:27:26'}]]

是否沒有從列表中檢索數據,例如檢索與Identityhash相關的所有數據?

理想情況下,將其轉換為字典將是最佳解決方案

謝謝

list=[[{'identityb32': 'qa46imyg4njipjsgpudn7vnn2zub2tec', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '18.238.2.85', 'orport': '443', 'identityhash': '8039e43306e35287a6467d06dfd5add6681d4c82', 'nick': 'Onions', 'version': 'Tor 0.2.3.25', 'flags': ['Exit', 'Fast', 'HSDir', 'Running', 'V2Dir', 'Valid'], 'identity': '\x809\xe43\x06\xe3R\x87\xa6F}\x06\xdf\xd5\xad\xd6h\x1dL\x82', 'digest': 'lh2LprFLd0bdvtIfPkz58//mgZk', 'pubtime': '09:37:21'}, {'identityb32': 'qbwfsrn3y5mmcnshotg77clvxjufngso', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '109.120.148.60', 'orport': '443', 'identityhash': '806c5945bbc758c1364774cdff8975ba68569a4e', 'nick': 'Reactor', 'version': 'Tor 0.2.4.22', 'flags': ['Exit', 'Fast', 'HSDir', 'Running', 'V2Dir', 'Valid'], 'identity': '\x80lYE\xbb\xc7X\xc16Gt\xcd\xff\x89u\xbahV\x9aN', 'digest': 'bDAS/RN7q4injGzkIXobcsSwS6c', 'pubtime': '08:55:57'}, {'identityb32': 'qcrds2ps562vf3ctnuoob4lgtmvt4zau', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '195.154.12.66', 'orport': '9001', 'identityhash': '80a23969f2efb552ec536d1ce0f1669b2b3e6414', 'nick': 'han1', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x80\xa29i\xf2\xef\xb5R\xecSm\x1c\xe0\xf1f\x9b+>d\x14', 'digest': 'FoPXNW58WS4eoCWB/eIK7j5yS4E', 'pubtime': '01:09:22'}], [{'identityb32': 'rzjbswyebloufopae2j46a6272wrwlae', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '77.247.181.164', 'orport': '443', 'identityhash': '8e52195b040add42b9e02693cf03dafead1b2c04', 'nick': 'rainbowwarrior', 'version': 'Tor 0.2.5.3-alpha', 'flags': ['Exit', 'Fast', 'Guard', 'HSDir', 'Running', 'Stable', 'Unnamed', 'V2Dir', 'Valid'], 'identity': '\x8eR\x19[\x04\n\xddB\xb9\xe0&\x93\xcf\x03\xda\xfe\xad\x1b,\x04', 'digest': '67A4paMg3mQUqHei8jNSWR2QWsg', 'pubtime': '08:29:31'}, {'identityb32': 'rzniakcq6yj3xdbk766e4yuspkhm2bq2', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '212.116.188.158', 'orport': '9001', 'identityhash': '8e5a802850f613bb8c2affbc4e62927a8ecd061a', 'nick': '7sYiz', 'version': 'Tor 0.2.3.25', 'flags': ['Exit', 'Fast', 'Guard', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x8eZ\x80(P\xf6\x13\xbb\x8c*\xff\xbcNb\x92z\x8e\xcd\x06\x1a', 'digest': '5+O3G9AMJujmUVxO3Fhz7MSPpHI', 'pubtime': '12:34:28'}, {'identityb32': 'rzs3murcnwhdeyj6blsfj7ipltbpmn44', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '176.31.122.216', 'orport': '9001', 'identityhash': '8e65b652226d8e32613e0ae454fd0f5cc2f6379c', 'nick': 'somewhere', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Running', 'Stable', 'Unnamed', 'V2Dir', 'Valid'], 'identity': '\x8ee\xb6R"m\x8e2a>\n\xe4T\xfd\x0f\\\xc2\xf67\x9c', 'digest': 'lEgmmiJcOvzsib9fZjgaxaSG6to', 'pubtime': '03:27:26'}]]
d = {}
for dic in l[0]:
    d.update(dic)
print d
{'identityb32': 'qcrds2ps562vf3ctnuoob4lgtmvt4zau', 'pubdate': '2014-07-07', 'ip': '195.154.12.66', 'orport': '9001', 'digest': 'FoPXNW58WS4eoCWB/eIK7j5yS4E', 'dirport': '9030', 'identityhash': '80a23969f2efb552ec536d1ce0f1669b2b3e6414', 'nick': 'han1', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x80\xa29i\xf2\xef\xb5R\xecSm\x1c\xe0\xf1f\x9b+>d\x14', 'pubtime': '01:09:22'}

您的列表中有多個子列表,因此您可能需要壓縮和更新,但是由於字典使用相同的鍵,因此更新為新字典時將丟失某些值。

如果要將所有字典拼合到一個列表中,請創建多個字典以保留所有值或在列表組合中獲取所需的鍵值:

flattened= ([x for y in  l for x in y])

這將從所有字典中獲取所有哈希值:

print [x.get('identityhash') for x in flattened]

['8039e43306e35287a6467d06dfd5add6681d4c82', '806c5945bbc758c1364774cdff8975ba68569a4e', '80a23969f2efb552ec536d1ce0f1669b2b3e6414', '8e52195b040add42b9e02693cf03dafead1b2c04', '8e5a802850f613bb8c2affbc4e62927a8ecd061a', '8e65b652226d8e32613e0ae454fd0f5cc2f6379c']

如果將dict組合在一起,您將丟失數據,因為內部列表包含具有相同鍵的多個dict。 如果只想在列表中使用身份哈希,則可以使用列表理解:

>>> data = [[{'identityb32': 'qa46imyg4njipjsgpudn7vnn2zub2tec', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '18.238.2.85', 'orport': '443', 'identityhash': '8039e43306e35287a6467d06dfd5add6681d4c82', 'nick': 'Onions', 'version': 'Tor 0.2.3.25', 'flags': ['Exit', 'Fast', 'HSDir', 'Running', 'V2Dir', 'Valid'], 'identity': '\x809\xe43\x06\xe3R\x87\xa6F}\x06\xdf\xd5\xad\xd6h\x1dL\x82', 'digest': 'lh2LprFLd0bdvtIfPkz58//mgZk', 'pubtime': '09:37:21'}, {'identityb32': 'qbwfsrn3y5mmcnshotg77clvxjufngso', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '109.120.148.60', 'orport': '443', 'identityhash': '806c5945bbc758c1364774cdff8975ba68569a4e', 'nick': 'Reactor', 'version': 'Tor 0.2.4.22', 'flags': ['Exit', 'Fast', 'HSDir', 'Running', 'V2Dir', 'Valid'], 'identity': '\x80lYE\xbb\xc7X\xc16Gt\xcd\xff\x89u\xbahV\x9aN', 'digest': 'bDAS/RN7q4injGzkIXobcsSwS6c', 'pubtime': '08:55:57'}, {'identityb32': 'qcrds2ps562vf3ctnuoob4lgtmvt4zau', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '195.154.12.66', 'orport': '9001', 'identityhash': '80a23969f2efb552ec536d1ce0f1669b2b3e6414', 'nick': 'han1', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x80\xa29i\xf2\xef\xb5R\xecSm\x1c\xe0\xf1f\x9b+>d\x14', 'digest': 'FoPXNW58WS4eoCWB/eIK7j5yS4E', 'pubtime': '01:09:22'}], [{'identityb32': 'rzjbswyebloufopae2j46a6272wrwlae', 'pubdate': '2014-07-07', 'dirport': '80', 'ip': '77.247.181.164', 'orport': '443', 'identityhash': '8e52195b040add42b9e02693cf03dafead1b2c04', 'nick': 'rainbowwarrior', 'version': 'Tor 0.2.5.3-alpha', 'flags': ['Exit', 'Fast', 'Guard', 'HSDir', 'Running', 'Stable', 'Unnamed', 'V2Dir', 'Valid'], 'identity': '\x8eR\x19[\x04\n\xddB\xb9\xe0&\x93\xcf\x03\xda\xfe\xad\x1b,\x04', 'digest': '67A4paMg3mQUqHei8jNSWR2QWsg', 'pubtime': '08:29:31'}, {'identityb32': 'rzniakcq6yj3xdbk766e4yuspkhm2bq2', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '212.116.188.158', 'orport': '9001', 'identityhash': '8e5a802850f613bb8c2affbc4e62927a8ecd061a', 'nick': '7sYiz', 'version': 'Tor 0.2.3.25', 'flags': ['Exit', 'Fast', 'Guard', 'HSDir', 'Named', 'Running', 'Stable', 'V2Dir', 'Valid'], 'identity': '\x8eZ\x80(P\xf6\x13\xbb\x8c*\xff\xbcNb\x92z\x8e\xcd\x06\x1a', 'digest': '5+O3G9AMJujmUVxO3Fhz7MSPpHI', 'pubtime': '12:34:28'}, {'identityb32': 'rzs3murcnwhdeyj6blsfj7ipltbpmn44', 'pubdate': '2014-07-07', 'dirport': '9030', 'ip': '176.31.122.216', 'orport': '9001', 'identityhash': '8e65b652226d8e32613e0ae454fd0f5cc2f6379c', 'nick': 'somewhere', 'version': 'Tor 0.2.4.22', 'flags': ['Fast', 'HSDir', 'Running', 'Stable', 'Unnamed', 'V2Dir', 'Valid'], 'identity': '\x8ee\xb6R"m\x8e2a>\n\xe4T\xfd\x0f\\\xc2\xf67\x9c', 'digest': 'lEgmmiJcOvzsib9fZjgaxaSG6to', 'pubtime': '03:27:26'}]]
>>> identityhash = [i.get('identityhash') for j in data for i in j]
>>> print(identityhash)
['8039e43306e35287a6467d06dfd5add6681d4c82','806c5945bbc758c1364774cdff8975ba68569a4e','80a269f2efb552ec536d1ce0f1669b2b3e6414','8e52195b040add42b9e02693cf03dafead1b2c04','8e5a802850f6bb8c2affbc4e62927a8ecd061a','8e65b652226d8e32613e0ae454fd0f5cc2f6379c']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM