【发布时间】:2014-09-22 13:24:26
【问题描述】:
我正在尝试从IPWhois 查找中提取数据并将其放入list。不知道results2[7]中拉出嵌套列表项背后的列表理解
from ipwhois import IPWhois
import pprint
obj = IPWhois('74.125.227.206')
results = []
results = obj.lookup_rws()
print '**********************************'
print 'PPrint Result:'
pprint.pprint(results)
print ''
print '**********************************'
results2 = results.items()
print '**********************************'
print 'After putting them into lists: '
print ''
print results2[0]
print results2[1]
print results2[2]
print results2[3]
print results2[4]
print results2[5]
print results2[6]
print results2[7]
print '**********************************'
结果:
C:\Python27\Scripts>python whois.py
**********************************
PPrint Result:
{'asn': '15169',
'asn_cidr': '74.125.227.0/24',
'asn_country_code': 'US',
'asn_date': '2007-03-13',
'asn_registry': 'arin',
'nets': [{'abuse_emails': 'arin-contact@google.com',
'address': '1600 Amphitheatre Parkway',
'cidr': '74.125.0.0/16',
'city': 'Mountain View',
'country': 'US',
'created': '2007-03-13T12:09:54-04:00',
'description': 'Google Inc.',
'handle': u'NET-74-125-0-0-1',
'misc_emails': None,
'name': 'GOOGLE',
'postal_code': '94043',
'range': u'74.125.0.0 - 74.125.255.255',
'state': 'CA',
'tech_emails': 'arin-contact@google.com',
'updated': '2012-02-24T09:44:34-05:00'}],
'query': '74.125.227.206',
'raw': None}
**********************************
**********************************
After putting them into lists:
('asn_registry', 'arin')
('asn_date', '2007-03-13')
('asn_country_code', 'US')
('raw', None)
('asn_cidr', '74.125.227.0/24')
('query', '74.125.227.206')
('nets', [{'city': 'Mountain View', 'updated': '2012-02-24T09:44:34-05:00', 'han
dle': u'NET-74-125-0-0-1', 'description': 'Google Inc.', 'tech_emails': 'arin-co
ntact@google.com', 'country': 'US', 'abuse_emails': 'arin-contact@google.com', '
created': '2007-03-13T12:09:54-04:00', 'range': u'74.125.0.0 - 74.125.255.255',
'state': 'CA', 'postal_code': '94043', 'address': '1600 Amphitheatre Parkway', '
cidr': '74.125.0.0/16', 'misc_emails': None, 'name': 'GOOGLE'}])
('asn', '15169')
*********************************
Inteded 的结果将是同时获得 results2[7] 中的项目,它是它自己的列表。在拆分它时链条中存在扳手,因为它们是('nets', [{ 的领先者,我不知道如何处理。
我已经尝试过:
from ipwhois import IPWhois
import pprint
obj = IPWhois('74.125.227.206')
results = []
results = obj.lookup_rws()
print '**********************************'
print 'PPrint Result:'
pprint.pprint(results)
print ''
print '**********************************'
results2 = results.items()
results3 = results[7]
results4 = results3.items()
print '**********************************'
print 'After putting them into lists: '
print ''
print results2[0]
print results2[1]
print results2[2]
print results2[3]
print results2[4]
print results2[5]
print results2[6]
print results2[7]
print '**********************************'
print results4
结果为:
C:\Python27\Scripts>python whois.py
**********************************
PPrint Result:
{'asn': '15169',
'asn_cidr': '74.125.227.0/24',
'asn_country_code': 'US',
'asn_date': '2007-03-13',
'asn_registry': 'arin',
'nets': [{'abuse_emails': 'arin-contact@google.com',
'address': '1600 Amphitheatre Parkway',
'cidr': '74.125.0.0/16',
'city': 'Mountain View',
'country': 'US',
'created': '2007-03-13T12:09:54-04:00',
'description': 'Google Inc.',
'handle': u'NET-74-125-0-0-1',
'misc_emails': None,
'name': 'GOOGLE',
'postal_code': '94043',
'range': u'74.125.0.0 - 74.125.255.255',
'state': 'CA',
'tech_emails': 'arin-contact@google.com',
'updated': '2012-02-24T09:44:34-05:00'}],
'query': '74.125.227.206',
'raw': None}
**********************************
Traceback (most recent call last):
File "whois.py", line 13, in <module>
results3 = results[7]
KeyError: 7
【问题讨论】:
-
nets 值中的列表可以有多个项目.. 那你会怎样呢?你能发布一个预期输出的例子吗?
标签: python list dictionary ip list-comprehension