- 0.1. Python JSON
- 0.2. 【Django】特定のレコードをコピー・更新して、新規登録したい
- 0.3. NOAAの海洋熱波カテゴリーをGeoViewsでインタラクティブにプロットする
- 0.4. Poetry add numpyでFor numpy, a possible solution would be to set the `python` property to “>=3.7,
- 0.5. LeetCode “46. Permutations”をPythonで解いた話
- 0.6. 【AtCoder解説】PythonでABC214のA,B,C,D問題を制する!
- 0.7. pipenv install時に”AttributeError: ‘NoneType’ object has no attribute ‘url'”が出た際の対処法
- 0.8. Cloud One Workload Security の Python SDK のソースコードを読んでみた
- 0.9. Ren’pyの日本語記事が少ないからまとめてみた(初心者編)
- 0.10. KerasのPermuteレイヤーの挙動確認
- 0.11. Electron + React + Django REST Framework でlocal GUI アプリを作る
- 0.12. 個人的なアルゴリズム解説(グラフなど)
- 0.13. pythonのGUIのFlexxのつまづきポイント
- 0.14. 【Python】BeautifulSoupで複数サイトをスクレイピングして更新通知をChatWorkで送信する
- 1. メインとなるスクレイピングのコード
Python JSON
https://docs.python.org/3/library/json.html
| 関数 | 結果 |
|—|—|
| json.dumps(obj) | 辞書型 -> 文字列(JSON) |
| json.loads(s) | 文字列(JSON) -> 辞書型 |
| json.dump(obj, fp) | 辞書型 -> ファイル(JSON) |
| json.load(fp) | ファイル(JSON) -> 辞書型 |“`python
import json# 辞書型 -> 文字列(JSON)
def dict2json_str(json_dict):
json_str = json.dumps(json_dict)
print(‘dict2json_str -> ‘, type(json_str))
return json_str# 文字列(JSON) -> 辞書型
def json_str2dict(json_str):
json_dict = json.loads(json_
【Django】特定のレコードをコピー・更新して、新規登録したい
## 目的
Pinterestのようにユーザー毎にフォルダを作成できて、ファイルをアップロードして他ユーザーと共有し、他ユーザーがアップしたファイルを自分のフォルダにも保存できるようなサービスを開発しています。
上記を実現するために、掲題のような処理を書いてみました、## ソース
“`python
# 1.コピー
# コピー元のレコードを取得
fileObj = file.objects.filter(id=id)
# querysetをdictに変換
fileJson = list(fileObj.values())[0]
# 2.更新
fileJson.pop(‘user_id’)
fileJson.pop(‘folder_id’)
fileJson.user = user
fileJson.folder = folder
# 3.新規登録
serializer = FileSerializer(data=fileJson)if serializer.is_valid():
# エラー処理
Response(serializer.errors, status=
NOAAの海洋熱波カテゴリーをGeoViewsでインタラクティブにプロットする
# はじめに
NOAAは水平分解約5kmの海洋熱波カテゴリーを計算した[データを公開している](https://coralreefwatch.noaa.gov/product/marine_heatwave/)。海洋熱波の強さを1から4の値にした指標である(0は発生なし、-1は海氷)。[サイト](https://coralreefwatch.noaa.gov/product/marine_heatwave/)で見られる図は全球で、例えば日本周辺の細かい様子は見にくい。そこで[GeoViews](https://geoviews.org/)というPythonのライブラリーでズームなどがインタラクティブにできるプロットにしてみる。[GeoViews](https://geoviews.org/)は[HoloViews](https://holoviews.org/)という可視化を助けてくれるライブラリを、地理的な図も簡単に作れるように拡張したライブラリーである。
# コード
作成したJupyter notebookはGithubの[gist](https://gist.github.
Poetry add numpyでFor numpy, a possible solution would be to set the `python` property to “>=3.7,<3.11"とでてしまう
# はじめに
会社でDockerの課題を作成して、環境構築の勉強をしていただいていました。
私も一応回答として課題で求めていた環境を事前に作成していました。しかし、数日後に質問を受けて同じ環境を同じ手順で作成したところ、エラーがでるようになっていました。
まだ記事が(世界中でも?)存在しないため、解決方法を載せます。# 環境
私が使っている環境は以下となります。
“`Dockerfile
FROM python:3.7-alpineUSER root
WORKDIR /appRUN apk update
RUN apk –no-cache add\
alpine-sdk\
libffi-dev\
zeromq-dev\
openssl-devRUN pip install –upgrade pip
ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1
RUN pip install\
cryptography==3.4.1\
poetry==1.1.78
“`“`docker-compose.yml
v
LeetCode “46. Permutations”をPythonで解いた話
#問題
>
>整数の配列numsが与えられています。それぞれの整数は1個ずつしかありません。ありうるすべての順列を答えてください。答えは、好きな順番で大丈夫です。
>こちらから挑戦できます。
https://leetcode.com/problems/permutations/#方針
ライブラリーを使ってはいけないという注意書きがないので、itertoolsを使います。
“`py
from itertools import permutations
class Solution:
def permute(self, nums: List[int]) -> List[List[int]]:
return permutations(nums, len(nums))“`
結果:**Success**![successWithLibrary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1851956/5c89718c-93df-6ae1-b284-67
【AtCoder解説】PythonでABC214のA,B,C,D問題を制する!
**ABC214**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。
ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。
– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増えるご質問・ご指摘は**コメント**か**ツイッター**までどうぞ!
**Twitter: [u2dayo](https://twitter.com/u2dayo)**よかったら**LGTM**していただけると、私のやる気がでます!
# 目次
[ABC214 まとめ](#abc214-まとめ)
[A問題『New Generation ABC』](#a問題new-generation-abc)
[B問題『How many?』](#b問題how-many)
[C問題『Distribution』](#c問題distribution)
[D問題『Sum of Maximum Weights』](#d問題sum-of-maximum-w
pipenv install時に”AttributeError: ‘NoneType’ object has no attribute ‘url'”が出た際の対処法
`pipenv install -dev`を実行して、次のエラーが出た。
“`
AttributeError: ‘NoneType’ object has no attribute ‘url’
“`(このエラーの前に、`Successfully created virtual environment!`というメッセージと長いスタックトレースが表示されています。)
原因は、`–dev`ではなく`-dev`と入力したためでした・・・。
develop packageをインストールする際に使うオプションは`–dev`もしくは`-d`です。参考:https://github.com/pypa/pipenv/issues/4582#issuecomment-896343811
Cloud One Workload Security の Python SDK のソースコードを読んでみた
らら子です。
[昨日の記事](https://qiita.com/rarako/items/fdc36b04aaf9010d7c93)に続きまして、本日はCloud One Workload Securityの自動化APIを試していきます。セキュリティソフトの管理なんてわざわざAPIで自動化することあるの?という疑問は持ちつつ公式ドキュメントを読み進めたところ、以下のような作業がAPIで自動化できることがメリットとして挙げられていました。
– ポリシーの設定とコンピュータの保護設定
– 脆弱性の発見とパッチの適用
– 定期的なメンテナンスタスクの自動化へー、という感じなのですが、CloudWatchなどのイベントをトリガーにEC2にインストールしたセキュリティエージェントの保護設定を動的に切り替えていく、みたいな運用ができたらかっこいいですね!(運用の安定性はともかく・・・)
というわけでさっそくAPIを使っていきましょうということで、Cloud One Workload SecurityのAPIについて、[公式ドキュメント:The API and SDK](https:/
Ren’pyの日本語記事が少ないからまとめてみた(初心者編)
#はじめに
一年くらい前に、Ren’pyでゲームを作ろうとしたことがあるんですが、そのとき、めっちゃ日本語の情報が少なくて、死にそうになったので、いまからRen’pyを始めようと思った人のために、コードの書き方をまとめていこうと思います。—
このまとめを見てもほしい情報が乗ってなかったり、意味わからんわってなった時は、[Ren’pyドキュメント](https://ja.renpy.org/doc/html)を見てみてください。Ren’py公式の情報なので、ほしい情報が載ってる場合が多いです。—
注:投稿は初めてなので、意味わかんないところがあっても温かい目で見てください。….言ったからな!文句言うなよ!
#1. キャラクターの定義
ゲームで出てくるキャラクターに、いちいちセリフごとに
「この名前で、この色で、この文を表示して・・・・」
なんてやってたら、ちょっとした会話を書くだけで日が暮れちゃう。
なので、Ren’pyでは、キャラクターを定義することができます。“`
define ta = Character(‘太郎’, color=”#ff69b4″)
KerasのPermuteレイヤーの挙動確認
こんにちは。つんあーです。
[KerasのPermuteレイヤー](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Permute?hl=ja)なのですが、
「たぶん転置的な動きをしてくれるんだよなぁ」とふんわり理解しているものの、
実際の挙動をちゃんと把握していなかったので、簡単に試してみました。## さくっと構築
(モデルっていうようなものではないですけどね)
`shape=[10, 2]`のTensorを、Permuteレイヤーを通すことで`shape=[2, 10]`に変換する
という想定で定義しました。“`
import tensorflow as tf
from tensorflow.keras import layers, modelsmodel = models.Sequential(name=’Permute_sample’)
model.add(layers.Permute(input_shape=(10, 2), dims=(2, 1)))model.compile
Electron + React + Django REST Framework でlocal GUI アプリを作る
## Electron+react+django REST framework
Local GUIアプリを作成する必要が出た際、言語の候補としては C#,python,Java などが上がってくることと思います。ただし、GUIの見た目がほぼWindows95時代のアプリのごとくいけていない。。。
そこでFrontをreactで、BackendをDjangoRESTFramework で実装しElectronを使ってdesktop app 化することにしました。
情報が少なく、苦労したので、個人メモがわりに残しておきます。参考にさせていただいたサイト:
① [Wijmo(ウィジモ)」とElectron、Reactを組み合わせて、Web技術でデスクトップアプリをつくろう] (https://codezine.jp/article/detail/13182)
② [Reactアプリから Django Rest API を叩いてみる](https://qiita.com/sand/items/80a67da0a44b042f0bc3)方針:
1. 最初にElectron+React
個人的なアルゴリズム解説(グラフなど)
これはAtCoderで緑コーダーになるために自分が学んだアルゴリズムなどの備忘録です。
他の人のコードを参考にしている部分もあります。
言語はPythonを使っています。
# グラフ
グラフ([wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%A9%E3%83%95_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)))
グラフについて解説していく。
まずはデータの取り込み方から。
## データの取り込み
### [typical90 078-EasyGraphProblem](https://atcoder.jp/contests/typical90/tasks/typical90_bz)
“`Python
N,M=map(int,input().split())
G=[[] for i in range(N+1)]
for i in range(M):
a,b=map(int,input().split())
G[a].append(b)
G[b].
pythonのGUIのFlexxのつまづきポイント
Flexxはpythonで書くので裏にブラウザがいるのを忘れてしまう。Flexxはpythonをjavascriptに変換してブラウザ上でGUIを実現してる。なのでjavascriptに存在しないライブラリは動かない。numpyなどのpython特有のモノを使うとエラー出してしまう。そこを何とかする方法を書いてみます。
`display`という関数を使うGUIを書いてみます。これは文字の大きさを返す関数です。
“`python
from flexx import flxdef display(s):
return str(len(s)) + ” Chars”class View(flx.Widget):
def init(self):
self.e1 = flx.LineEdit(text=’flexx’)
self.b1 = flx.Button(text=’文字数カウント’)
self.t1 = flx.Label(text=””, style=’border:1px solid red’)
【Python】BeautifulSoupで複数サイトをスクレイピングして更新通知をChatWorkで送信する
PythonのBeautifulSoupを使って、
複数のサイト(の最新記事)をスクレイピングし、
更新があればChatWorkに通知を送信するシステムを作成しました。備忘録のために書き留めておきます。
メインとなるスクレイピングのコード
まずは必要なライブラリやモジュールをインポートします。
config や chatwork への通知処理は後ほど別ファイルに書きます。
“`python:site_checker.py
# coding: UTF-8
import requests
from bs4 import BeautifulSoup
from my_config import my_config, update_recent_article
from chatwork_notification import chatwork_notify
“`
サイト別に記事一覧を取得する関数を書きます。
スクレイピングしたいサイトごとに、最新記事のDOMを取得するように調整してください。“`python:site_checker.p
ブラウザで、廃墟を探索しお化けと自撮りしたい
#動機
mediapipe のhuman seqmentationを使ってゲームを作りたかった。
jsを勉強中なので、ブラウザで作りたい。
最初は、世界遺産で自撮りできるものを考えていたが、素材が集まらなかったので
https://qiita.com/im02kai/items/31fa6cfc8e50855bebff
を使って、素材を作成。
素材ありきで、廃墟探索になり静止画ではつまらないので、VRツアーにしました。#完成サイト
https://www.web-tools.app/ghosttop#動画です、まだゲーム性はないですがサーバー費用が続く限り拡張していきます。
#環境
mediapipeを使うので、レンタルサーバーでは、無理、ということで
https://qiita.com/im02kai/items/948dd616b86596e748d2
で環境構築#構成
こちらも、mediapipeがpythonインターフェイスを持つので
flask
flask-socket
netatomのstationデータをAWS Elasticsearch Serverへ流し、そのデータ描画をする
## この記事は何?
前の記事の続きとなります。
netatmoのデータ取得ができたので、このデータを使ってAWS Elasticsearch Serverでデータ取得から描画まで行います。https://qiita.com/hiroyuki_kawahara/items/abb25e90f024cbece732
## AWS Elasticsearch Serviceとは?
概要だけつまむと、データレイクのElasticsearchと可視化BIツールのkibanaが合体したサービス。各サービスの結合と必要な設定を担当してくれます。
https://aws.amazon.com/jp/elasticsearch-service/
## AWS Elasticsearch Serviceの環境構築
AWS Elasticsearch Serviceの新規環境構築していきます。
![スクリーンショット 2021-08-16 14.01.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2
PytorchでCSVで保存しているデータを線形回帰する一歩手前までの話
前回に引き続き、今回もPytorchを使用した線形回帰についてです。
線形回帰を実践で行うには、CSVとして保存されているデータを読み込んで計算をすることでしょう。
今回は、CSVとして保存されているデータを、線形回帰を行う直前までの状態に加工します。#目標
今回の目標は、CSVファイルとして1つのファイルに保存されている情報を、2つのPyTrochのtensor(targets, inputs)にすることです。
方針は以下の通りです。
>
>csvをnumpy.ndarrayとして読み込む
>読み込んだnumpy.ndarrayをinputsとtargetsに切り分ける
>切り分けたものを、PyTorchに読み込ませる
># csvをnumpy.ndarrayとして読み込む
numpy.loadtxt()メソッドを使って、csvを読み込みます。
“`py
import numpy as np#ファイルのパスは適切なものを入力する。
f = np.loadtxt(“C:\\Users\\YOURNAME\\Desktop\\FILENAME.csv”, de
TensorFlowでのtext.Tokenizerがうまく動かなかったのでtensorflow_textを使ってみた
#作業環境
Jupyter Notebook(6.1.4)を用いて作業を進めた。
各versionは`pandas`(1.1.3), `tensorflow`(2.5.0), `tensorflow_datasets`(4.3.0), `tensorflow_text`(2.5.0)である。#発生状況
`TensorFlow`について学習中、文章データを読み込みそれをトークンに分割する場面が出てきた。調べたところ`tensorflow_datasets`パッケージの中に`Tokenizer`クラスが含まれているようだったので以下を実行してみたところエラーになってしまった。
“`python
import tensorflow as tf
import tensorflow_datasets as tfdstokenizer =tfds.features.text.Tokenizer()
#—> AttributeError: module ‘tensorflow_datasets.core.features’ has no attribute ‘text’
“`
pythonでUnion-Find木を実装する
Union-Findというデータ構造を学習したので、自分なりに整理し、pythonで実装してみました。
## Union-Findについて
Union-Findは木構造を持つデータ構造で、グループ分けを効率的に管理することができます。
例えば、以下のように0の球と1の球が同じグループ、2,3,4の球が同じグループにあったとします。
0の球と1の球が同じ分類に存在している場合、0の球の下に1の球を接続して木構造として管理するというのがUnionFind木のアイデアです。
言い換えると、『同じ集合に属すること=同じ木に属すること』と考えることができます。ほかの数字の球も同じように木として管理します。
[Union find(素集合データ構造)](https://www.slideshare.net/chokudai/union-f
Athenaで基礎からしっかり入門 分析SQL(Python・Pandasコード付き) #3
今まで複雑なデータ操作・分析などはPythonでやっており、SQLは普通のアプリ開発程度のライトなものしか触って来なかったのですが、やはり分析用の長いSQLなども書けた方がやりとり等で便利・・・という印象なので、復習も兼ねて記事にしておきます。
また、SQLに加えて検算も兼ねてPythonやPandasなどを使ったコードもSQLと併記していきます(Pythonで書くとどういった記述が該当するのかの比較用として使います)。
※長くなるのでいくつかの記事に分割します。本記事は3記事目となります。
# 他のシリーズ記事
※過去の記事で既に触れたものは本記事では触れません。
`#1`:
用語の説明・SELECT、WHERE、ORDER BY、LIMIT、AS、DISTINCT、基本的な集計関係(COUNTやAVGなど)、Athenaのパーティション、型、CAST、JOIN、UNION(INTERSECTなど含む)など。
https://qiita.com/simonritchie/items/0d84646e3db940e98b14
`#2`:
GROUP BY・HAVING