[英]pandas df of api query
我在一个ip
地址的 JSON 中有如下所示的 API 数据。 典型查询包含 50 个ip
设备。
[{'ip': '11.22.33.44',
'services': [{'port': 80,
'service_name': 'HTTP',
'transport_protocol': 'TCP'},
{'port': 1911, 'service_name': 'FOX', 'transport_protocol': 'TCP'},
{'port': 3011, 'service_name': 'HTTP', 'transport_protocol': 'TCP'},
{'port': 5011,
'service_name': 'HTTP',
'certificate': 'thisisgarbledrandomtextofdigitsandletters',
'transport_protocol': 'TCP'},
{'port': 47808, 'service_name': 'BACNET', 'transport_protocol': 'UDP'}],
'location': {'continent': 'North America',
'country': 'United States',
'country_code': 'US',
'city': 'Denver',
'postal_code': '80908',
'timezone': 'America/Denver',
'province': 'Colorado',
'coordinates': {'latitude': 39.0234, 'longitude': -104.6926},
'registered_country': 'United States',
'registered_country_code': 'US'},
'autonomous_system': {'asn': 7922,
'description': 'CHARTER-7922',
'bgp_prefix': '11.22.33.44/55',
'name': 'CHARTER-7922',
'country_code': 'US'},
'operating_system': {'part': 'o', 'source': 'OSI_APPLICATION_LAYER'},
'last_updated_at': '2022-08-23T12:51:39.427Z',
'dns': {'reverse_dns': {'names': ['somebusiness.net']}}}]
如果我尝试使用 Pandas:
df = pd.DataFrame(data)
print(df.columns)
将返回:
Index(['ip', 'services', 'location', 'autonomous_system', 'operating_system',
'last_updated_at', 'dns'],
dtype='object')
查询中的每个ip
是否可以在 Pandas 中返回所有坐标? 在上面的例子中,它'coordinates': {'latitude': 39.0234, 'longitude': -104.6926}
我想我可以不用 Pandas 做类似的事情:
loc_data = []
for device in page:
for info in device.keys():
try:
coords = device['location']['coordinates']
loc_data.append(coords)
except:
continue
这将打印:
[{'latitude': 39.0234, 'longitude': -104.6926},
{'latitude': 39.0234, 'longitude': -104.6926},
{'latitude': 39.0234, 'longitude': -104.6926},
{'latitude': 39.0234, 'longitude': -104.6926},
{'latitude': 39.0234, 'longitude': -104.6926},
{'latitude': 39.0234, 'longitude': -104.6926}]
但是如果可能的话,我希望只使用 Pandas 吗? 希望这是有道理的!
谢谢
尝试这个:
df = pd.DataFrame(data)
data["coordinates"]=data["location"].apply(lambda x:x["coordinates"])
如果您的意思是仅使用pandas
来创建一个 dataframe 与从开始的coordinates
列这不是解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.