ProHoster > Блог > ozi ịntanetị > Otu esi enyefe robot akụkọ dị mfe. Anyị na-ede bot na Python na Google BigQuery
Otu esi enyefe robot akụkọ dị mfe. Anyị na-ede bot na Python na Google BigQuery
Ị nwere ọrụ na-emeghachi kwa ụbọchị, kwa izu na izu? Dịka ọmụmaatụ, ide akụkọ. Ị na-arịọ data, nyochaa ya, jiri anya nke uche hụ ya (mee eserese, eserese), wee zigara onye isi gị. Ma gịnị ma ọ bụrụ na ihe a niile bụ akpaaka?
N'ime nkuzi a, anyị ga-emepụta bot maka Telegram nke ga-enyere aka ịme mkpesa. Ihe kacha mma bụ na mmemme ahụ niile ga-enwe naanị ahịrị 50 nke koodu! Ọ bụrụ na ị na-eke bot maka Telegram na nke mbụ, ị ga-agụkwa nke a posta.
Ọ bụrụ na anyị chọrọ iji ọrụ ahụ, anyị kwesịrị ijikọ Google BigQuery API. Iji mee nke a, anyị na-aga Nchịkọta Ndị Nkwado Google ma mepụta ọrụ ọhụrụ (ma ọ bụ họrọ nke dị adị).
N'ime njikwa njikwa, họrọ Kwado APIS NA Ọrụ wee chọọ BigQuery API.
Anyị chọrọ paramita ise, ebe x bụ data x-axis, x_label bụ aha maka axis, y bụ y-axis data, y_label bụ aha maka axis, na aha bụ aha nke ihe ngosi niile.
def visualize_bar_chart(x, x_label, y, y_label, title):
plt.title(title)
plt.xlabel(x_label)
plt.ylabel(y_label)
index = np.arange(len(x))
plt.xticks(index, x, fontsize=5, rotation=30)
plt.bar(index, y)
return plt
Chekwa foto a
Ugbu a, ka anyị jiri ọrụ abụọ mepụta nhụta anya wee chekwaa ya.
Anyị ga-ezipụ ọnụ ọgụgụ nke posts ebipụtara kwa ụbọchị. Mbụ anyị dee arịrịọ.
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
Ajụjụ a na-enyere aka ịnakọta data izu abụọ malite na Disemba 2, 2018.
Anyị na-eji ụbọchị a n'ihi na 2018-12-02 bụ data kachasị ọhụrụ edekọ na bigquery-public-data.stackoverflow.post_history, n'ọnọdụ ndị ọzọ ị nwere ike iji CURRENT_DATE() iji nweta data kachasị ọhụrụ.
Kpọọ ọrụ query_to_bigquery iji nweta data ahụ.
dataframe = query_to_bigquery(ajụjụ)
Mgbe ahụ, anyị na-eji kọlụm data ụbọchị maka x-axis, yana kọlụm mkpokọta_posts maka y-axis.
x = dataframe['ụbọchị'].tolist()
y = nchekwa data ['total_posts'].tolist()
Anyị na-eji anya nke uche hụ ya site na iji ọrụ visualize_bar_chart wee chekwaa ya dị ka onyonyo.
plt = visualize_bar_chart (x = x, x_label = 'Ụbọchị', y=y, y_label='Mkpokọta akwụkwọ ozi', aha =' Posts kwa ụbọchị')
plt.savefig('viz.png')
Anyị kechie koodu a n'ọrụ akpọrọ get_and_save_image.
def get_and_save_image():
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
dataframe = query_to_bigquery(query)
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
plt = visualize_bar_chart(x=x, x_label='Date', y=y, y_label='Total Posts', title='Daily Posts')
plt.savefig('viz.png')
Zipu onyonyo
Ka iziga onye nnata akụkọ, ị ga-amata paramita chat_id.
Anyị na-eji userinfobot ma pịnye/bido. Bot ahụ na-aza ozi dị mkpa, chat_id dị n'ime oghere id.
Ugbu a, ka anyị mepụta ọrụ send_image. Ọ ga-eji ọrụ get_and_save_image weghachi ma chekwaa onyonyo a. Ma mgbe ahụ, anyị na-eziga ihe niile na kọntaktị ziri ezi.