如何使用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')
答案 0 :(得分:0)
要了解您需要与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调用的结构化数据,尤其是在您可能拥有大型数据集的情况下。
我希望这个答案对您有所帮助!