- 1. Twitter API 検索で大量データを収集(CSV)
- 2. DynamodbにPython:floatを入れる場合
- 3. プログラミング初心者がnews情報収集botを作成した話
- 4. Pythonビルトインの様々な文字列操作
- 5. 【高等学校学習指導要領 情報Ⅰ】教員研修用教材:データの形式と可視化(python)
- 6. matplotlibのTimes New Romanがボールド体になる問題
- 7. matplotlibでTimes New Romanが使えないとき (Ubuntu)
- 8. 【Python】lambda関数ってどう使うんだろ??【殴り書き】【初投稿】
- 9. Spotify APIを使ったヒット予測1.過去データの日付ランキング作成
- 10. 【Python初心者】classの使い方とは?5stepsで理解しよう!(メソッドとインスタンス)
- 11. RaspberryPiのカメラでリアルタイムでゴニョゴニョするためのコード
- 12. Python3: CouchDB のデータを削除 (Delete)
- 13. Python3: CouchDB のデータを更新 (Update)
- 14. Python3: CouchDB のデータを読む (Read)
- 15. Python3: CouchDB のデータを作成 (Create)
- 16. Python プロパティの良さを探す。
- 17. リストとジェネレータ(データサイエンスの観点から)
- 18. pythonでJIS X 0208をShift-JISやUTF-16に変換する
- 19. Python3のノート
- 20. Oxford Dictionaries APIの使い方
Twitter API 検索で大量データを収集(CSV)
#開発環境
Python3.7.3
Twitter API#参考にしたページ
https://qiita.com/kngsym2018/items/2524d21455aac111cdee
http://westplain.sakuraweb.com/translate/twitter/Documentation/REST-APIs/Public-API/The-Search-API.cgi
https://syncer.jp/Web/API/Twitter/REST_API/
https://qiita.com/mida12251141/items/97bce06e4167db8ed3d5
https://qiita.com/tomozo6/items/d7fac0f942f3c4c66daf#事前にやっておくこと
Twitter APIの登録申請。ここでは割愛。
私は申請から許可まで4日ほどかかりました。
「参考にしたページ」の一番目で丁寧な解説がされてます。#やりたいこと
1レコード1ツイートなテーブル形式の状態でcsvファイルに保存する。
各データには改行はない
DynamodbにPython:floatを入れる場合
# 結論
値として挿入する場合はサポートされていないため、一旦文字列>Decimalにしてから挿入すること。“`python
item={
“val”:Decimal(str(float_val))
}
“`参照:
https://stackoverflow.com/questions/49633504/python-and-dynamodb-decimal-inexact#comment93902878_52450303
プログラミング初心者がnews情報収集botを作成した話
こんにちは、初めての投稿です。
私は非IT企業に勤めるサラリーマンです。
プログラミング歴は約1年です。
勤めている会社の社訓として、情報を積極的に収集しようというようなものがあります。
情報、かつては、新聞等を読んで入手するのが通常だったとは思うのですが、今は新聞を読んでいる人も減っていると思いますし、ネットでニュースを見られる時代です。便利になったと思います。しかしながら「積極的に」ニュースサイトにアクセスして情報を得るというのは、日々通常業務を行っている自分にとっては難しいことでした。業界に関連する情報等、いくつかチェックしたいサイトはあるのですが、面倒くさがりな性分なのか、わざわざサイトに飛ぶのが面倒くさいです。そこで、「積極的に」という社訓に沿っているとは言い難いかもしれないですが、定期的にニュースサイトを巡回し、最新のニュースをメールで送信するbotを作成しました。(そもそも情報が洪水のように流れている時代の中で、「積極的に」とはどういう行為を指すのだろう?)
また、最近拝読した「独学プログラマー」という本でオブジェクト指向プログラミングという手法が紹介されておりましたので
Pythonビルトインの様々な文字列操作
# まえおき
– この記事は執筆中の[やさしくはじめるPythonプログラミング](https://github.com/simon-ritchie/python-novice-book-preview)の本の特定の章の部分抜粋です。
– 入門本なので初心者の方向けです。
– ビルトインの文字列操作関係の章の内容が主になります。
– Qiita記事にマッチしていない箇所(「章」や「ページ」といった単語が使っていたり、改行数が余分だったり、リンクが対応していない等)があるという点はご留意ください。気になる方は↑のリンクの電子書籍版をご利用ください(Githubでダウンロードできます)。
– コメントなどでフィードバックいただいた場合、書籍側にも活用・反映させていただく場合があります。# 文字列の各操作
前章までで基本的なPythonの操作や型・ビルトイン関数などを学んできました。本章では文字列に対して追加の操作について学んでいきます(前章までである程度操作方法について学んできましたが、他にも大切で便利な操作方法などが色々あるのでそちらを学んでいきます)。
数は多いので全ては覚え
【高等学校学習指導要領 情報Ⅰ】教員研修用教材:データの形式と可視化(python)
#はじめに
今回は文部科学省のページで公開されている情報Ⅰの教員研修用教材の「第4章情報通信ネットワークとデータの活用・巻末」内の「データの形式と可視化」について、Rのソースコードの個所を、pythonで実装及び若干の補足考察をしていきたいと思います。#教材
[高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416756.htm “高等学校情報科「情報Ⅰ」教員研修用教材(本編):文部科学省”)
[第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB)](https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/09/24/1416758_006_1.pdf “第4章情報通信ネットワークとデータの活用・巻末 (PDF:10284KB)”)#環境
– ipython
– [Colaboratory – Google Cola
matplotlibのTimes New Romanがボールド体になる問題
下記のプログラムを追加すると解決します.
“`
import matplotlibdel matplotlib.font_manager.weight_dict[‘roman’]
matplotlib.font_manager._rebuild()
“`
matplotlibでTimes New Romanが使えないとき (Ubuntu)
下記のようなエラーが出る場合.
“`
UserWarning: findfont: Font family [‘Times New Roman’] not found. Falling back to DejaVu Sans.
(prop.get_family(), self.defaultFamily[fontext]))
“`Terminalから以下のコマンドを入力することで解決する.
“`
$ sudo apt install msttcorefonts -qq
$ rm ~/.cache/matplotlib -rf
“``ttf-mscorefonts-installer`はTabで選択したい位置にカーソルを合わせてEnterを押す.
【Python】lambda関数ってどう使うんだろ??【殴り書き】【初投稿】
#公開理由
・qiitaに挙げるっていう意識高い系の皆様を見て「自分も簡単なことで良いからアウトプットする習慣を作りたい!」って思った為
・『Pythonチュートリアル』の本を読んでいて、いまいち使い方がイメージ出来なかったので#lambda関数とは
・無名関数って呼ばれるやつらしい。
いつもはdef 関数名():みたいな感じでいろいろとコード組んでいかないといけないんですけど、それを省略して関数を定義出来るみたいです。
関数を組むための手間を省略出来ていい感じって事らしい。。。(レベルが高い方はそういう恩恵を感じているようですね。。。私はまだ感じれないですね汗)####●文法
“`
lambda 引数: 返り値
“`####●サンプルコード※変数にlambdaを入れるのはPEP8違反なのであれですがわかりやすいので。
“`python:test.py
a = 100
b = 50abSum = lambda a, b: a + b
abSub = lambda a, b: a – b
abMul = lambda a, b: a * b
abDiv
Spotify APIを使ったヒット予測1.過去データの日付ランキング作成
![spotify.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/fcc2b392-eab3-6680-feb3-37d748c430cd.png)
spotifyのAPIを使ってヒット予測を作ってみました。
今回はまず取り掛かりの第一回目として、
1.過去のランキングデータを取得
2.取得したランキングデータをまとめてグラフ化
をやっていきます。##1.過去のランキングデータを取得
https://spotifycharts.com/regional
から日本の日別トップ200ランキングを取得しました。
過去数日ないとランキングの推移が出せないので、ここでは2020年7月1日〜7月13日のデータを取得しています。取得したファイル一覧がこちら
![A7A8FC26-C4A3-4CB9-A06B-BAB03EC652BA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/399e6e9c-
【Python初心者】classの使い方とは?5stepsで理解しよう!(メソッドとインスタンス)
今回目指すアウトプット
——————![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/616412/37fdd220-eb23-4878-0f2b-b675d44c1a5f.png)
結論
——————
・クラス
・メソッド
・インスタンス
の3つを定義する。“`Python:結論
class クラス名(): #クラス名をつける
def メソッド名(self): #メソッド名をつける
実行したい処理 #実行したい処理
インスタンス名 = クラス名() #インスタンス名をつけるインスタンス名.メソッド名() #呼び出す
“`各論
——————–classの定義(step1)
————–
“`Python:step1
class クラス名(): # <--- これをまず覚える ``` ↓ classの使い方(step2) --
RaspberryPiのカメラでリアルタイムでゴニョゴニョするためのコード
使いたいライブラリに合わせて適宜利用すればOK。
物体検知とかにどうぞ。# PILバージョン
“`python:PILバージョン
import os
from datetime import datetime
from PIL import Image
from picamera import PiCameracamera = PiCamera()
while True:
nowtime = datetime.now()
filename = nowtime.strftime(‘%H%M%S’) + ‘.png’
camera.capture(filename)
with Image.open(filename) as frame:
pass # ここでゴニョゴニョする
os.remove(filename)
“`# cv2バージョン
“`python:cv2バージョン
import os
from datetime import datetime
import cv2cam = cv2.VideoCapt
Python3: CouchDB のデータを削除 (Delete)
“`py:couch_delete.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_delete.py
#
# Jul/27/2020
# —————————————————————-
import sys
import json
import requests
#
# —————————————————————-
sys.stderr.write(“*** 開始 ***\n”)
#
key_in = sys.argv[1]
print(“%s” % key_in)
#
url_json = ‘http://localhost:5984/nagano’
url_key = url_json + ‘/’ + key_in
#
rr=requests.get(url_key)
#
unit_aa = json.loads(rr.text)
#
if
Python3: CouchDB のデータを更新 (Update)
“`py:couch_update.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_update.py
#
# Jul/27/2020
#
# —————————————————————-
import sys
import json
import datetime
import requests
#
# —————————————————————-
sys.stderr.write(“*** 開始 ***\n”)
#
key_in = sys.argv[1]
population_in = int(sys.argv[2])
print(“%s\t%d” % (key_in, population_in))
#
url_json = ‘http://localhost:5984/nagano’
url_key = url_json + ‘/’ +
Python3: CouchDB のデータを読む (Read)
“`py:couch_read.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_read.py
#
# Jul/27/2020
#
# —————————————————————-
import json
import sys
import requests
#
# —————————————————————-
def dict_display_proc(dict_aa):
for key in sorted(dict_aa.keys()):
if ((key != ‘_id’) and (key != ‘_rev’)):
unit = dict_aa[key]
name = unit[‘name’]
str_out = str(key) +”\t”+ str(name)
str_out += “\t” + str(
Python3: CouchDB のデータを作成 (Create)
“`py:couch_create.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
#
# couch_create.py
#
# Jul/27/2020
#
import sys
import requests
import json
#
#
# —————————————————————-
def dict_to_couch_proc (dict_aa,url_collection):
rr=requests.delete(url_collection)
try:
rr=requests.put(url_collection,'{}’)
except Exception as ee:
sys.stderr.write(str(ee) + ‘\n’)
#
for key in dict_aa:
value = dict_aa[key]
json_str = json.dumps (value)
url_target =
Python プロパティの良さを探す。
pythonのプロパティに関しての記事です。
`__slots__`やコメント、型ヒントなどは省略しています。
## あまり恩恵がわかりにくい例
1.インスタンス変数のみ
“`
class Data:def __init__(self):
self.x = “a”
“`2.プロパティで書いたパターン
“`
class Data:def __init__(self):
self._x = “a”@property
def x(self):
return self._x@x.setter
def x(self, arg_x):
self._x = arg_x
“`
✴︎1 _は直接アクセスして欲しくない変数につけます。上記のクラスをどちらを使っても同じ結果になります
“`
data = Data()
print(data.x)
data.x = “b”
print(data.x)>>a
>>b
“`この二つの例だけでは恩恵
リストとジェネレータ(データサイエンスの観点から)
Pythonを勉強し始めると,初期にはリスト”[ ] ”表記を学びます.
そしてだんだんと,リストの内包表記を学び始めて効率的なコードが書けるようになります.
そして次には,「ジェネレータが便利だよ!」という声が耳に入りますが,結局ジェネレータってなんなん・・・となるのではないでしょうか.
このジェネレータの便利な点の初歩をまとめました.# ジェネレータの意義
ジェネレータを用いる意義の1つとしてあげられるのが・使用メモリ量を抑えられる
という点です.これがリスト表記との決定的な違いであり,データサイエンスで大量のデータを読み込む必要があるときに効力を発揮します.
# ジェネレータ表記
“`list_comprehension.py
>>> [2 * num for num in range(5)]
[0, 2, 4, 6, 8]
“`“`generator_object.py
>>> (2 * num for num in range(5))
at 0x109ce7840>
“`上と下の違いは,外
pythonでJIS X 0208をShift-JISやUTF-16に変換する
あることでJISコードを日本語変換したくなったときのやり方が分からなかったのでメモ。
# 方法
公開されているJIS X 0208コードの変換表を用いて連想配列を作成する
下は対応表
> http://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT
> http://ash.jp/code/unitbl21.htm# プログラム
“`python:jis.pyimport os
ar = []
with open(‘./JIS0208.TXT’) as f:
for t_line in f:
# 先頭がコメントの部分は除く
if t_line[0] != “#”:
sjis, jis, utf16 = os.path.basename(t_line).split(‘\t’)[0:3]
ar.append([jis, utf16])
# 例) ar[‘0x3B3D’] -> ‘0x8695’
# JIS -> UT
Python3のノート
# はじめに
– OS
– Windows10 Pro
– Version
– Python 3.7.3—
# 更新日時
|更新日|内容|名前|
|:–|:–|:–|
|2020.07.26 Sun|新規作成|Yamada|—
# 参考資料
[Pythonエンジニア育成推進協会監修 Python 3スキルアップ教科書 ](https://www.amazon.co.jp/dp/B07YQ1RM1K/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
[公式ドキュメント Python 3.7.8](https://docs.python.org/ja/3.7/)
—
# 最初のプログラム
“` python
print(‘Hello,World’)
“`
—# 基本ルール
—
## 変数の宣言
– ハッシュ記号は変数名に利用できない
– ドルマークは変数名に利用できない
– 数字で始まる変数名は宣言できない
– Pythonのキーワードに使われている文字列は変数に
Oxford Dictionaries APIの使い方
# Oxford Dictionaries APIとは
一言でいえば、かの有名なOxford Universityが提供する35か国語対応の辞書APIです。
月1000アクセスまでは無償で(商用も含めた)利用が可能です。
詳細は[こちら](https://developer.oxforddictionaries.com/about)。## [FAQ](https://developer.oxforddictionaries.com/faq)より抜粋&意訳
> Who built the Oxford Dictionaries API?
>
The Oxford Dictionaries API was built by a team in Oxford Dictionaries which is a part of Oxford University Press. You can find out more about our API here, and more about Oxford Dictionaries here.Q:誰がOxford Dictionaries