- 1. djangoでmysqlを使うときに”Authentication plugin ‘caching_sha2_password’ cannot be loaded…”と出たとき
- 2. Bots使ってSlack勤怠Bot制作メモ
- 3. kibela APIを利用したQiita Contributionっぽいものを作った話
- 4. 気象庁地震カタログを用いて経緯度と震央地名の対応表を作る
- 5. pythonのmultiprocessing.Queueのempty()メソッドは危険
- 6. 政府統計e-Stat APIを使ってデータ分析しましょう
- 7. AWSで機械学習モデルを動かしてみる
- 8. Flask + SQLAlchemy でよさそうなトランザクション管理
- 9. 【python】dict変数に苦労した(1)
- 10. SPSS Modelerの文字列に関するCLEM関数をPythonで書き換える
- 11. 【RestAPI?】初心者向けにざっくり解説
- 12. Pyrightのpip経由でのインストールと利用を試してみる
- 13. 【Python】Tkinterを使って✜マークを記述
- 14. 【Python】turtleを使って⌘(command)マークを記述
- 15. LINE BOT経由でRaspberry Piに接続したUSBカメラの画像を取得してみる
- 16. PythonでUnicodeDecodeErrorが発生した時の対応
- 17. くそアプリをやっと思いついた
- 18. Joy-ConとPython3で脚部動作認識
- 19. Pythonでのデータ埋める方法
- 20. Pythonによる自然言語処理入門 -形態素解析-
djangoでmysqlを使うときに”Authentication plugin ‘caching_sha2_password’ cannot be loaded…”と出たとき
# 目的
djangoでsqliteの代わりにmysqlをデータベースとして利用すること。
# 結論
djangoでmysqlを使うときに”Authentication plugin ‘caching_sha2_password’ cannot be loaded…”とエラーが出た場合は、
**ユーザーの認証方法をmysqlclientが非対応だがデフォルトであるcaching_sha2_passwordからmysql_native_passwordに変更する必要がある。**
# 実施環境
### ハードウェア環境
| 項目 | 情報 |
|:-:|:-:|
| OS |macOS Catalina(10.15.7) |
|ハードウェア | MacBook Air (11-inch, Early 2015) |
|プロセッサ | 1.6 GHz デュアルコアIntel Core i5|
|メモリ | 4 GB 1600 MHz DDR3 |
|グラフィックス | intel HD Graphics 6000 1536 MB |
### ソフトウェア環境
Bots使ってSlack勤怠Bot制作メモ
## 前書き
YouTubeで`Bots`使用してSlackBotを制作する動画を拝見しましたので、メモとして残します。## Botsの新規追加
Botsはslack botの一種であります、Appに`bots`で検索していただければ出てきます。
![E02543D7-D417-4723-B921-DC3A9863D38E.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320164/c928fd38-bf34-7dc8-fb9b-648122685179.jpeg)`追加`を押して頂けると、`ユーザー名`入力の画面が表示されます、入力して`ボットインテグレーションを追加する`をクリックしましょう。
![3BBE1803-0321-4A27-93B8-8DEA98718FBE.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320164/2f547582-69db-d67c-5a26-10a302e1c773.j
kibela APIを利用したQiita Contributionっぽいものを作った話
[パーソンリンク アドベントカレンダー](https://qiita.com/advent-calendar/2021/personlink)25日目です!?
今日で2021アドベントカレンダーも最終日です。
個人的には今年のアドベントカレンダーは結構書いたなーと思っております。(文字量は気にしない!)# 何を作ったか
[Qiita表彰プログラム](https://qiita.com/qiita-award)のパクリで社内表彰集計ロジックを作りました。# キャプチャ
## 表紙
![スクリーンショット 2021-12-23 18.17.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230393/788ed049-707f-023e-4cf3-14a062d2f609.png)## 順位
![Web 1920 – 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230393/3369d344-31e5
気象庁地震カタログを用いて経緯度と震央地名の対応表を作る
この投稿は、[地震情報アプリ界隈 Advent Calendar 2021](https://adventar.org/calendars/6729) の25日目の記事です。ご参加頂いた方々、ありがとうございました。
昨日は、はるさんの [テロップソフトのすゝめ](https://qiita.com/kanto_haru_dev/items/6da5a6d85912df1c3e70) でした。# はじめに
気象庁が発表する地震情報では、地震の発生した場所を地名で表現します。例えば「茨城県南部で地震」「宮城県沖で地震」などという言葉をよく聞きますよね。この「茨城県南部」「宮城県沖」といった地名は**震央地名**と呼ばれ、気象情報などとは別に地震情報ならではの地域区分がなされています[^1]。どの地域がどの震央地名で表されるかは、気象庁HPで公開されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565515/313df382-e72b-a20b-3309-fa4f7dbc
pythonのmultiprocessing.Queueのempty()メソッドは危険
表題の通り危険なので利用を避けるべきです.
これは公式でも言及されている内容です.代わりに以下のように判定します.
“`
if queue.qsize() == 0:
# 理想的には queue.empty() と同じ結果
# 実際には様々な問題からそうとは限らない
# 処理
“`参考:[Why queue is not multiprocessing safe?](https://stackoverflow.com/questions/28685823/why-queue-is-not-multiprocesing-safe)
政府統計e-Stat APIを使ってデータ分析しましょう
## はじめに
自分は人事給与ERP製品を開発する会社で、統計帳票の開発を担当しまいます。
統計帳票というのは、毎月勤労統計表や賃金台帳、公務員調査表など、全国調査にあってはその全国的変動を毎月、毎年明らかにすることを、地方調査にあってはその都道府県別の変動を毎月、毎年明らかにすることを目的とした調査です。
日々大量なデータを見る私は、これらのデータを分析することで、社員の退職や昇給などの原因がわかるではないかを気づきました。ビッグデータ活用が近年話題になり、国や民間企業等が提供している主要な統計データを分析し、提供しているWebサービスもあります。
https://dashboard.e-stat.go.jp/
ただ、分析した内容と画像がややシンプルであり、データをもっと深堀りできるではないかを考えています。
もし、これらのデータを手には入れたら。。。と思いつつ、e-State APIがあることに気づきました。e-State APIというのは、政府統計の総合窓口(e-Stat)で提供している統計データを機械判読可能な形式で取得できるAPI機能です。今回e-StateのAPIを
AWSで機械学習モデルを動かしてみる
機械学習について学びたいと思い、手始めにAWSの10分チュートリアルを参照しながら機械学習モデルをコーディングしてみました。
<<参考>>Amazon SageMaker を使用して機械学習モデルを構築、トレーニング、デプロイ
https://aws.amazon.com/jp/getting-started/hands-on/build-train-deploy-machine-learning-model-sagemaker/
このチュートリアルに沿ってPythonコードを書くと銀行の顧客データからその顧客が新規商品の契約をしてくれるかどうかを予測する機械学習モデルを簡単に作成できます。
ただ、チュートリアルに沿うだけだと一体何をしているのか分かりづらいので、自分なりにこのコードがしていることをまとめてみましたので参考にしていただければと思います。
#具体的にやっていること
![AWS-SageMaker.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1926542/79716881-0
Flask + SQLAlchemy でよさそうなトランザクション管理
## よくあるやつ
[Transactions using Flask-SQLAlchemy](https://saswatac.medium.com/transactions-using-flask-sqlalchemy-f5b26d23e2f2) にあるように
“`python
from contextlib import contextmanager
@contextmanager
def transaction():
try:
yield
db.session.commit()
except Exception:
db.session.rollback()
raise
“`を作成して、それを
“`python
def hogehoge():
with transaction():
…
“`と処理を書く。
記述ところが少しなら良いけど、色んなところにあると、少しめんどくさい。
## よさそうなやつ
“`python
from functools impor
【python】dict変数に苦労した(1)
2021年8月からAWSのLAMBDAとdjangoでpythonの仕事をやり始めたんですが、これまでPHPばかりに偏ってたものでpythonに慣れるのに結構苦労した事の中で、dict変数があったのでその辺の事を書いてみます。
###1.PHPだと連想配列は簡単に作れたが、dictは宣言が無いとエラーになって勝手に作ってくれない
PHPでは、自分の必要な時に“`php
$sample1[“hoge”] = “aaabbbccc”;
“`
のように書けば、配列変数\$sample1が作成され、$sample1[“hoge”]という連想配列が作成され、aaabbbcccを代入してくれる。pythonのdict変数でこれをやると、NameErrorとなってしまう。
“`
C:\project\python_test>python3 sample1.py
Traceback (most recent call last):
File “sample1.py”, line 2, in
sample1[“hoge”] = “aaabbbccc”
SPSS Modelerの文字列に関するCLEM関数をPythonで書き換える
以下の記事を参照しつつ、SPSS Modelerのclem関数を使って文字列型のレコードを加工してその処理をPythonで書き換えてみます。
https://qiita.com/Makimaki2020/items/35ab02a7375325e678c1
加工に使用するデータは、以下から取得しました。
・「データサイエンティスト協会スキル定義委員」の「データサイエンス100本ノック(構造化データ加工編)」https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
・海外在留邦人数調査統計 https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00300100&tstat=000001055779&cycle=0&tclass1=000001116075&file_type=1&result_page=1&tclass2val=0上記の記事で紹介されているとおり、文字列関数の実行結果は主に3種類です。
1
【RestAPI?】初心者向けにざっくり解説
# 目的
最近流行のpython, djangoを触ってAPIを実装しようとしたときに、django_restframeworkなるもので簡単にRESTAPIが実装できると言うことを知ったものの、**RestfulなAPIとはどのようなものか完全には理解できていなかったため**ここで同じように曖昧なイメージを持っている方々に共有してみむとせん。# 前提
API自体の知識は多少ある方。
RestfulAPIと言う名前を聞いたことがある方# 概要
REST APIは「REST」と呼ばれるAPIの設計思想に基づいたweb用のapiのこと。
RESTには以下の4原則がある。
①ステートレス
②統一インターフェース
③接続性
④アドレス可能性
以上の四つの原則に従って実装されたAPIのことをRESTAPIと呼ぶ。
具体的に4原則について説明する# 詳細
### 1. ステートレス
サーバーにユーザーセッションなどの「状態」(ステート)を持たない(レス)前提で情報のやり取りを行う。
→ やり取りが一回ごとに完結する。
→ 2度目のアクセスをしてもサーバー側は何も記憶がない### 2
Pyrightのpip経由でのインストールと利用を試してみる
自作Pythonライブラリで、GitHub Actionsなどでのmypyでの型チェックは入れているのですが、追加でPyrightでのチェックも入れたいと思い検証してみたのでその備忘録です。
※普段はCI的に組み込んだりはしていないもののVS Code上でのPylance(内部でPyrightが使われています)での型チェックは使っていました。
※PyrightやPylanceとはなんぞや・・・という方はちょっと古いですが以前記事を書いているのでそれらをご確認ください。
https://qiita.com/simonritchie/items/7492d1c1a3c13b2f27aa
https://qiita.com/simonritchie/items/33ca57cdb5cb2a12ae16
# そもそも何故今までmypyのようにCIに組み込んでいなかったのか
mypyはpipでさくっと入れることができます。一方でPyrightはPythonで書かれているわけではなくpipだけでさくっとインストールが効きませんでした(node.jsなど依存関係で色々考えたりが必要になっ
【Python】Tkinterを使って✜マークを記述
PythonとTkinterを使って✜マークを記述するコード。
## 実装コード
“`python
from tkinter import *window = Tk()
window.geometry (“600×600”)
window.attributes(“-topmost”,True)
window.title(“sample window”)c = Canvas(window,width=600,height=600,background=”green”)
size = 3
for n in range(size):
for m in range(size):
if (n+m) % 2 == 1:
c.create_rectangle(50+m*32,50+n*32,80+m*32,80+n*32,outline=””,fill=”black”)
c.pack()
mainloop()
“`## 実行結果
![スクリーンショット 2021-12-24 1.36.53.png](https://qiita-image-store.s3.ap
【Python】turtleを使って⌘(command)マークを記述
Pythonとturtleを使って⌘(command)マークを記述するコード。
## 実装コード
“`python
from turtle import *
speed(0)
step = 2
for m in range(4):
for n in range(0,270,step):
forward(2)
right(step)
forward(200)
done()
“`## 実行結果![スクリーンショット 2021-12-24 1.31.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522445/5f8af3cb-dbb3-f109-f4b3-0d5eacc39f58.png)
https://docs.python.org/ja/3/library/turtle.html
LINE BOT経由でRaspberry Piに接続したUSBカメラの画像を取得してみる
# 前書き
突然ですが、皆さんの家でRaspberry piは活躍していますか?
我が家ではRaspberry pi2およびpi3をそれぞれ1台持っていますが、SAMBAでのファイル共有でしか使っておらず、家族からは、「あれ必要なの?」とよく言われます。
年間電気代1500円ぐらいながら、すでに幾多のSDカードを買い替えて、そこそこ保守費もかさんでおります。
そこで、何か役に立つことをさせよう。ということで、自分の知識習得もかねて、LINEからリビングにあるRaspberry piのUSBカメラ画像を取得するプログラムを作成しました。Qiita初投稿となりますので、上手いこと書けるか分かりませんが、ご指摘・ご質問あれば、コメントいただければと思います。
# 構成&動作
以下に構成図と簡単な動作を示します。(ちなみに図は[https://www.diagrams.net/](https://www.diagrams.net/”https://www.diagrams.net/”)を使って書きました。)
![network.png](https://qiita-image-store
PythonでUnicodeDecodeErrorが発生した時の対応
## はじめに
対応方法を検索した時に、それぞれについてはあったものの
一緒に行うものがなかったので備忘録としてのメモです。## 問題
Windows環境で作成したzipファイルを読み込んだ時に、 `UnicodeDecodeError` が発生することがある。
原因は、文字コードがShift JISだけど、PythonはUTF-8で扱うので、その違いによるもの。## 対応方法
### その1“`bash
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0x8e
“`が発生した時、[Python 3 で日本語ファイル名が入った zip ファイルを扱う](https://qiita.com/methane/items/8493c10c19ca3584d31d)に記載されている通り、
“`python
file_name.encode(“cp437”).decode(“cp932”)
“`としたら良い。
### その2
「その1」の対応で万事OKかというと、実はそうでもなかったりする。
今度は、
くそアプリをやっと思いついた
# くそアプリをやっと思いついた
## 苦しんだ理由
くそアプリを考えるにあたって要件定義を考えすぎた。
1.仕事や余暇の役に立ってはいけない。
2.人を和ませなければならない。
3.人に感心されるような出来栄えはいけない。(っつーか、できねえw)
## できたもの
“`
#良い日になるプログラムを作りました
#Google Colaboratoryで実行できます
from datetime import date
today = date.today()
if today == date(2022, 1, 1):
message = ‘Happy New Year!’
else:
message = ‘Have a nice day!’
print(today,message)
“`
## 自己評価
肩に力が入ってなくて、いいんじゃねw## Githubはこちら
[AppMakesYouHappy](https://github.com/Hiroyuki-Moriya/AppMakesYouHappy)
Joy-ConとPython3で脚部動作認識
#はじめに
こんにちは、HCB Advent Calendar 2021の21日目を担当するKimです。
僕は卒業研究でPC作業中の脚部動作促進システムの研究をしており、研究の中ではJoy-ConとPythonを使った脚部動作認識を実装しています。
今回は僕が実装した脚部動作認識について紹介します。
#脚部動作認識方法
##データの取得
開発中のシステムでは,Joy-Conから脚部動作中の加速度と角速度を取得し,その値を使ってMacで認識する流れになっています。
Joy-Conから加速度・角速度を取得する方法は@tocoteronさんの記事を参考にさせていただきました。
https://qiita.com/tocoteron/items/9a5d81c8f640ecaff7a9
Joy-Conから取得したデータは,その脚部動作を認識するための基準データとしてcsvファイル保存します。
##DTW距離の算出
DTW(Dynamic Time Warping)とは2つの異なる波形の類似度を距離として算出するアルゴリズムです。
DTW距離が小さいほど波形データの類似度が高いことを表します。
Pythonでのデータ埋める方法
#実装
“`padding_formatter.py
def padding_formatter(item, padding, data_type):
“”” 引数で指定された桁数までデータを埋める
埋める内容は以下の通り
・データ型[numeric: 数字] 先頭0埋め
・データ型[half: 半角] 後ろ半角スペース埋め
・データ型[full: 全角] 後ろ全角スペース埋めArgs:
item: 項目
padding: 桁数(byte数ではない)
例 全角で64byte項目の場合は「32」桁を指定
data_type: データ型[numeric: 数字, half: 半角, full: 全角]
Returns:
固定長分埋めた項目
“””
out_item = str(item)
if data_type == ‘numeric’:
Pythonによる自然言語処理入門 -形態素解析-
こんにちは
アドベントカレンダー22日目です。
[HCB Advent Calendar 2021](https://qiita.com/advent-calendar/2021/hcb-2021)今日はPythonによる自然言語処理について書きたいと思います。
## 初めに
今回は、Macを使用している方をメインターゲットとしてPythonによる自然言語処理の記事を書きたいと思います。最近初めて自然言語処理をしたのですが、「Macを対象とした記事があまりないな… 特に最近出された記事がないな」と思ったので書かせていただきます。
## 想定している読者
今回本記事で想定している読者は、Macを使用している方です。
また、辞書としてMeCabを使用します。
(MeCabってなに?という方はこのまま読んでいただけるとわかると思います。)## 目次
– 初めに
– 想定している読者
– 環境構築
– 形態素解析
– 辞書の追加
– 頻出語句の抽出
– 終わりに## 環境構築
**注意:今回はPythonの環境構築は割愛させていただきます。**今回は、形態素解析器と