仮想サーファーの波乗り

仮想化エンジニアの日常

プログラミング・SNS分析・仮想通貨・自動化などに関してよく書く雑記ブログ

Python

【Pythonエラー解決】「TypeError: unhashable type: xxx」

TypeError: unhashable type: 'list' 上記のようなエラーが出た時の対処法。 自分で定義したオブジェクトを辞書のkeyに設定しようとすると、ハッシュ化できないからエラーになる。 intやstrのようなハッシュ化可能なオブジェクトをkeyに設定する必要がある。…

【Herokuでgit pushに失敗】App not compatible with buildpack

Localで作成したPythonのアプリケーションを既存のHeroku上のアプリケーションに強制的にプッシュして上書きしようとすると、以下のようなエラー。 $ git push -f --set-upstream https://git.heroku.com/xxx.git master Counting objects: 9, done. Delta c…

【Python初心者〜中級者向け】半年間でPython未経験が趣味で作ったものと学んだこと

半年前くらいからPythonを触ってきて、学んだこと・Pythonで作ったものをまとめておきます。 「なんとなく書きやすそう!」というアホみたいな理由で趣味で書き始めて、最初はググってコピペしながらなんとか書いていたPythonですが、半年経った今ではほとん…

PythonのHerokuアプリケーションからGoogle Spread Sheetの読み書き

「Pythonのアプリケーションで、特定のGoogle Spread Sheetに対して読み書きをしたい!!!」と思っていろいろ調べてみると、以下のような記事にて紹介されている方法で、簡単にGoogle Spread Sheetの読み書きをすることはできた。 temcee.hatenablog.com in…

Pythonで仮想通貨価格のアラートメールを送信する

今回は、仮想通貨の価格が一定以上(or 以下)になったらメールを送信してくれるプログラムをPythonで実装していきます。 smtplib(メール送信処理のPython標準ライブラリ)を利用すればメール送信の処理部分はほとんど実装することなく、超手軽にメール送信…

仮想通貨情報お知らせTwitterBotを1週間運用してみた結果

今回は、仮想通貨情報を知らせてくれるTwitterBotを開発してから運用して1週間が経ったので、その開発から運用までを振り返っておこうと思います。 気が向いたから仮想通貨の価格お知らせbot作る— 仮想サーファー@webエンジニア (@virtual_techX) 2018年5月1…

仮想通貨データをCoinGeckoのAPIで取得してPythonで遊ぶ② ~仮想通貨価格を知らせるTwitterBot開発~

今回は、CoinGeckoのAPIにアクセスして取得したデータをもとに、つぶやきをしてくれるTwitterのBotを開発していきます。何もしなくても自動でリアルタイム情報をつぶやいてくれるので、仮想通貨の価格どうなったかな?って時に活用できて便利かなと。 Python…

仮想通貨データをCoinGeckoのAPIで取得してPythonで遊ぶ① ~CoinGecko APIの種類と使い方~

今回は、CoinGeckoのAPIで提供されているデータが想定外に豊富で、いろいろ活用できそうだったので紹介します。 応用すれば仮想通貨の価格や値動きやコミュニティ動向などの市場情報取得して、Twitterボットでデータを自動でつぶやいたり、市場情報をもとに…

【Pythonアプリ Herokuエラー解決】ModuleNotFoundError: No module named 'xxx'

PythonアプリをHerokuにデプロイしてたら遭遇した「ModuleNotFoundError: No module named 'xxx'」というエラー。 $ heroku logs ... 2018-05-13T02:30:45.743840+00:00 app[scheduler.6642]: File "/app/service/rss_service.py", line 1, in <module> 2018-05-13T0</module>…

SQLAlchemyで「AttributeError: 'Table' object has no attribute 'xxx'」

SQLAlchemyで「AttributeError: 'Table' object has no attribute 'xxx'」というエラーが出て、なんでかなとちょっと詰まったのでメモ。 以下のような処理を記述したファイルを実行すると... # coding=utf-8 import os from sqlalchemy import create_engine…

PythonでSlackBot開発⑨「Twitterのつぶやき情報をMySQLに保存する」

PythonでSlackBotを開発しよう企画の第9回目。 今回は、tweepyとslackAPIを活用して、slackで入力を受け付けてTwitter上の特定のユーザーのつぶやき情報をMySQLに保存していく処理を実装していきます。 MySQLにテーブル作成 まずは、MySQLにテーブルを作成し…

PythonでSlackBot開発⑧「Heroku Schedulerでプログラム定期実行」

PythonでSlackBotを開発しよう企画の第8回目。今回はプログラムを定期的に自動実行してくれるようにしていきます。本格的にBotっぽくなってきましたが、リクエストを受け付けて処理を始めるようでは、処理を自動でしてくれている感がなくて辛いので、自動で…

【番外編】PythonでSlackBot開発 リファクタリングしてたらハマったこと

PythonのSlackBot開発でリファクタリングを進めていたら、色々ハマったところとその解消方法をメモしておきます。 ファイル間のモジュールの受け渡しや、LocalとHerokuでの変数の読み込みでどっぷりとハマることが多く時間を費やしてしまいました。悔しい。 …

PythonでSlackBot開発⑥「MySQL連携してデータベース利用」

PythonでSlackBotを開発しよう企画の第6回目。今回はデータの保存・加工をしていくために、MySQL(データベース)に連携していきます。データベース連携することで、ツイート情報の保存をしたり、保存しておいたデータを加工して利用することができるので、…

PythonでSlackBot開発⑤「DocomoAPIで雑談機能追加」

PythonでSlackBotを開発しよう企画の第5回目。今回は、DocomoAPIを活用して雑談できる機能を実装していきます。これまでは明示的に設定したレスポンスを返すようにしてきましたが、今回でようやくBotぽい動きになることを期待しています。 DocomoAPIの登録・…

PythonでSlackBot開発④「仮想通貨ダッシュボード画像をSlack送信」

PythonでSlackBotを開発しよう企画の第4回目。今回は、仮想通貨情報を教えてくれる機能を実装していきます。「特定の仮想通貨の価格チャート推移画面スクリーンショットをSlack投稿してくれる」機能を実装していきます。 CoinGeckoダッシュボード画像Slack送…

PythonでSlackBot開発③「Twitterで話題のツイートを教えてくれる」

PythonでSlackBotを開発しよう企画の第3回目。今回は、Twitterで話題になっているツイートを探して教えてくれる機能を実装し、返答内容を追加する方法を紹介します。 今回紹介する内容を応用すれば、割となんでもBotで完結できそうな予感がしてます。 現在日…

PythonでSlackBot開発②「Herokuにデプロイする」

PythonでSlackBotを開発しよう企画の第2弾!今回は、第1回目で作ったしょぼいSlackBotアプリケーションをデプロイ(いつでもアクセスできる状態に)していきましょう。 わざわざ「$ python run.py」と打ち込んでファイルを起動しなくてもBotが動き続けてくれ…

PythonでSlackBot開発①「APIキーの取得と簡単な返答」

職場でSlackを使っているのですが、「同じような定期連絡を定期でつぶやくのがめんどくさい...。自動化したい!」ということで、PythonでSlackBotを開発することにしました!今日から複数回に渡ってPythonで自動でSlack通知・受け応えをしてくれるSlack-Bot…

【Pythonのエラー解消】python3を実行しようとして「bash: python3: command not found」

久しぶりにPython触ろうかなと思ってpyファイルを実行しようと思ったら、以下のエラー。 bash: python3: command not found python3が見つからない?!なんでだ。と思いましたが、まさか消えてるわけないしなあと思ってpython3を直接実行しようとすると... $…

Pythonでwebアプリケーション開発⑦ ~TwitterAPIで自動フォロー/アンフォロー改良版~

以前、TwitterのAPIを触ってみよう企画第3回目でTwitterAPIを使って特定のユーザーをフォロー/アンフォローする機能をご紹介しましたが、そのコードを改良してより実践的なものにしたので、ご紹介しておきます。これを実行するだけで、フォロー/アンフォロー…

【TwitterAPIのエラー解消法】tweepy.error.TweepError: [{'code': 89, 'message': 'Invalid or expired token.'}]

PythonとTwitterAPI使って「フォローしているアカウントの中で不毛なアカウント(フォロー数多すぎるアカウント)をフォロー外す」という処理を書いて実行するようにしていたのですが、何度か連続してファイルを実行していると、急にアクセスできなくなって…

Pythonでwebアプリケーション開発⑥ ~TwitterAPIで自動フォロー/アンフォロー~

こんばんは! TwitterのAPIを触ってみよう企画の第3回目です。今回は、TwitterAPIを使って特定のユーザーをフォローしていきます。 TwitterのAPI利用準備 まだTwitterのAPI準備をしていない方は、こちらを参考にAPIを使える状態にしておいてください。 特定…

Pythonでwebアプリケーション開発⑤ ~TwitterAPIでタイムライン表示~

こんばんは! TwitterのAPIを触ってみよう企画の第2回目です。今回は、TwitterAPIを使ってタイムラインのつぶやき情報を取得していきます。 TwitterのAPI利用準備 まだTwitterのAPI準備をしていない方は、こちらを参考にAPIを使える状態にしておいてください…

Pythonでwebアプリケーション開発④ ~TwitterAPIのTweepyとforegoでつぶやき~

こんばんは! 今日は「Twitterのツイートって、自動化できないかな?」ということでTwitterのAPIをちょっと触ってみた結果をご紹介します! TwitterAPIキーの取得 まずは、TwitterAPIを使うための準備をしていきます!TwitterのAPIを使ってツイートをしたり…

Pythonでwebアプリケーション開発③ ~SeleniumとPhantomJSでブラウザ操作~

こんばんは! 今日はPythonとSeleniumとPhantomJSを使って、普段の作業を自動化できないかな?と思っていろいろ試した結果をご紹介します! 事前の環境構築が終わっていない方は、こちらを参考にPythonを実行できる環境を用意しておいてください! www.virtu…

Pythonでwebアプリケーション開発② ~PyCharmのインストールと設定~

こんばんは! 今回は、Pythonの統合開発環境であるPycharmのインストールと初期設定方法に関してご紹介していきます。 Pythonを使い始めた当初は、teminalでちまちま開発していたのですが、PyCharmを使うようになって自動で補完してくれる機能に感動しました…

Pythonでwebアプリケーション開発① ~環境構築編~

こんにちは。 近頃、機械学習が盛り上がっていますね。 「仕事の7割を奪う!」などと誇張されて危機感を誘われることが多い技術ですが 人々の仕事を奪う技術ってどんなものなのさ?! ということで、今回は機械学習のライブラリ(便利な機能が簡単に使えるよ…