parsing - 如何使用python将数据从csv表发布到电报?
问题描述
如何使用python将数据从csv表发布到电报?我可以在哪里保存我的数据集以及我应该如何进行查询?我是 Telegram APi 的初学者。我试图将我的数据集保存到 GoogleBigQuery,但查询不起作用。我应该使用哪种服务?我的代码
import requests
from bs4 import BeautifulSoup
import pandas as pd
import pandas_gbq
url = "https://ege.hse.ru/rating/2019/81031971/all/?rlist=&ptype=0&vuz-abiturients-budget-order=ge&vuz-abiturients-budget-val=10"
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
tbl = soup.find("table", {"id": "transparence_t"})
data_frame = pd.read_html(str(tbl))[0]
data_frame.columns=['Вуз','Качество приема на основании среднего балла ЕГЭ зачисленных на бюджетные места 2019','Рост/ падение 2019-2018','Количество студентов, зачисленных на бюджетные места','Из них: без экзаменов','Ср.балл рассчитан с вычетом баллов за И.Д.?']
data_frame.to_gbq('my_dataset.my_table', project_id='hseparser-261610', if_exists='fail', private_key='/Users/daniilorlov/Downloads/hseparser-261610-e5e26181b8be.json')
解决方案
要了解您需要与 Telegram 通信的 API 调用格式,我建议您查看他们的文档(https://core.telegram.org/bots/api)。
关于您当前的问题,我只是尝试运行您的代码,它返回给我指定为列名的字符的编码错误。我将它们更改为英文字母并删除了空格和特殊字符。
import requests
from bs4 import BeautifulSoup
import pandas as pd
import pandas_gbq
url = "https://ege.hse.ru/rating/2019/81031971/all/?rlist=&ptype=0&vuz-abiturients-budget-order=ge&vuz-abiturie$
page = requests.get(url)
import pydata_google_auth
credentials = pydata_google_auth.get_user_credentials(
['https://www.googleapis.com/auth/cloud-platform'],
)
soup = BeautifulSoup(page.content, 'html.parser')
tbl = soup.find("table", {"id": "transparence_t"})
data_frame = pd.read_html(str(tbl))[0]
data_frame.columns=['FIRST_TENSE','SECOND_TENSE','THIRD_TENSE','FOURTH_TENSE','FIFTH_TENSE','SIXTH_TENSE']
data_frame.to_gbq('mynewdataset.mynewtable', project_id='myproject', if_exists='fail', credentials)
为了进行身份验证,我安装了使用用户凭据的 pydata_google_auth 库。或者,您也可以通过服务帐户来执行此操作,就像您使用私钥进行 API 调用身份验证一样,在这种情况下,可以按如下方式指定凭据变量:
from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file(
key_path,
scopes=["https://www.googleapis.com/auth/cloud-platform"],
)
(https://cloud.google.com/bigquery/docs/authentication/service-account-file)。
我是在 python 3.5 中完成的,我已经能够通过库 pandas_gbq 写入 BigQuery。在附图中我的结果...
关于保存这些数据的存储位置取决于您的需要。BigQuery 可能是一个很好的解决方案,因为它允许您为电报 API 调用准备好结构化数据,尤其是在您可能拥有大型数据集的情况下。
我希望这个答案对你有帮助!
推荐阅读
- windows - 如何覆盖 Win 10 光标大小?
- javascript - 为什么只有数组中的最后一个对象可用
- c# - 从 dbContext 动态获取数据并过滤
- linux - 将多个 ARM 工具链添加到路径
- excel - 是否可以使用 Smart View VBA HypConnect 连接到应用程序但不能在工作表上激活它?
- python - 使用 OOP 逻辑的 Ceaser 密码
- charts - 谷歌时间线图使第一列可点击
- validation - 使用 OmniFaces o:validateMultiple 验证 ap:dataTable 或 p:treeTable 中的多个输入
- powershell - 如何将变量添加为结果集中的列值?
- reactjs - TypeError:无法读取未定义的属性“位置”(开玩笑)