[英]how to stop table data from over lapping other columns with pandas, bs4, requests and tabulate
目前,我有下面的代码,用于 discord 机器人在多伦多显示活动的消防呼叫,在某些情况下,派出了很多消防车,当它被刮到一个表格时,派出的单位似乎与其他列和行重叠,我希望它被组织在下面彼此在一个列中。
import discord
import requests
from bs4 import BeautifulSoup
from tabulate import tabulate
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('$hello'):
await message.channel.send('Hello!')
if __name__ == '__main__':
endpoint = "https://www.toronto.ca/data/fire/livecad.xml?i4sqso"
header = [
"Prime Street", "Cross Street", "Dispatch Time", "Incident Number",
"Incident Type", "Alarm Level", "Area", "Dispatched Units"
]
page = requests.get(endpoint).text
events = BeautifulSoup(page, "lxml").find_all("event")
event_table = []
for event in events:
row = event.getText(separator="|").split("|")
if len(row) == 7:
row.insert(1, "")
event_table.append(row)
无需拆分,因为您正在使用 XML。 只需遍历每个事件并从每个事件中获取文本:
import requests
from bs4 import BeautifulSoup
import pandas as pd
if __name__ == '__main__':
endpoint = "https://www.toronto.ca/data/fire/livecad.xml?i4sqso"
header = [
"Prime Street", "Cross Street", "Dispatch Time", "Incident Number",
"Incident Type", "Alarm Level", "Area", "Dispatched Units"
]
page = requests.get(endpoint).text
events = BeautifulSoup(page, "lxml").find_all("event")
event_table = []
for event in events:
event_table.append([e.get_text(strip=True) for e in event])
df = pd.DataFrame(event_table, columns=header)
print(df)
这将为您提供如下表格:
Prime Street Cross Street Dispatch Time Incident Number Incident Type Alarm Level Area Dispatched Units
0 LYNEDOCK CRES, NY FENSIDE DR / CLIMANS RD 2021-05-12 10:40:37 F21044501 Fire - Residential 2 233 R115, P233, P245, P123, A244, C11, C24...
1 DUFFERIN ST, NY SPARROW AVE / RANEE AVE 2021-05-13 03:26:13 F21044810 Fire - Commercial/Industrial 2 145 P145, R133, P132, P143, A341, C13, R34...
2 M1R 2021-05-13 04:10:49 F21044814 MEDICAL 0 233 P233
3 M2N 2021-05-13 04:31:47 F21044816 MEDICAL 0 114 P114
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.