2つのリストを処理

1つの方法→ zip()サンプル:split で生成した2つのリスト a = 'a,b,c,d' b = '1,2,3,4' for x, y in zip(a.split(','), b.split(',')): print('%s - %s' % (x, y)) print 結果 a - 1 b - 2 c - 3 d - 4tuple のリストにする。 c = [(x, y) for x, y in zip…

PostgreSQL での GROUP_CONCAT

SQL

MySQL の GROUP_CONCAT と同様のことをやる。GROUP BY を指定したSELECT で、STRING_AGG を使う。書式は、 STRING_AGG ( expression, separator [order_by_clause] )order by で指定する列は、他の列でもいい

PostgresSQL アップサートのインクリメント

SQL

UPDATE 時のインクリメントがうまくいくからといって、 アップサートでのインクリメントが同じ構文では効かないのが PostgresSQLこんなテーブルがあった時、 CREATE TABLE ITEMS ( ID VARCHAR(6), NAME VARCHAR(20), U_COUNT INTEGER, PRIMARY KEY (id) ) こ…

スレッド間のデータの受け渡し

Java ではなく Python の話です。 Thread生成時の引数にどういう転送用のオブジェクトを渡すか。。。 以下、サンプルです。 Queue を使う ThA.py # -*- coding: utf-8 -*- from threading import Thread import time import sys sys.path.append("../logtool…

ImportError エラーの解決

pyCharm で、Python を書いていて、実行前にエディタで警告のマークが出ないからと、 ついうっかり、 ImportError: attempted relative import with no known parent package となってしまうことがある。 カレントディレクトリにインポートしたいファイルを…

スレッド数のカウント

現在実行されているスレッドの数を調べるのは、 import threading threading.active_count()

Condition notify を使ったスレッドの制御

threading.Condition と、条件となる任意のオブジェクトをグローバル変数スコープにして 実現させます。 以下、サンプル # -*- coding: utf-8 -*- from threading import Thread, Condition import time # 生成格納先リスト products = [] # 条件オブジェク…

Python スレッドの戻り値

Python 戻り値ありのスレッドの方法というのをネット検索すると やたらと Future の使用を見かけます。 from concurrent.futures import ThreadPoolExecutor ThreadPoolExecutor の submit メソッド呼び出しで Future を受け取って Future の result メソッ…

Python Thread (初心者向けサンプル)

基本的な簡単なサンプルを書き留めておきます、Thread の説明 class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)group = ThreadGroupが将来実装された時の予約語で、None とすべき引数 target = 呼び出し可…

高階関数 functools.reduce のよくある使用方法

以前、高階関数 functools.reduce(function, sequence, initial=None) を使った リストの重複有無をチェックするを書いたけど、 oboe2uran.hatenablog.comもっと、一般的なやさしい使い方を書いておこう。collections の namedtuple で定義したリストから合…

Apache POI で、Excelセルの背景色を読み取る

POI で、Excelセルの背景色を設定するのは、 org.apache.poi.ss.usermodel.Workbook から、org.apache.poi.ss.usermodel.CellStyle の インスタンスを生成して、 → Workbook の createCellStyle() メソッド org.apache.poi.ss.usermodel.IndexedColors で表…

Python での YAML と JSON の相互変換

https://pyyaml.org/ https://pypi.org/project/PyYAML/ を使う。 pip install pyyaml相互変換の媒介として辞書として扱うYAML → JSON sample.yaml title: サンプル item: - id: 10 name: Red value: - 111 - 222 - id: 20 name: Blue phone: - 333 - 444 sa…

TOML について

toml.ioTOML - WikipediaTOML: 日本語 v1.0.0-rc.2TOML っていいな

snakeyaml

<dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>2.2</version> </dependency> https://bitbucket.org/snakeyaml/snakeyaml/src/master/Feature → https://github.com/snakeyaml/snakeyamlfor Pythonhttps://pyyaml.org/https://pypi.org/project/PyYAML/pip install pyyaml

重複などのチェック

Java で試したもの。 oboe2uran.hatenablog.comoboe2uran.hatenablog.comoboe2uran.hatenablog.comPython で試したもの。 oboe2uran.hatenablog.com

Flask Blueprint サンプル

2年前に書いた Flask の Blueprint サンプルは、ページ毎のフォルダに HTMLテンプレート, CSS, JSを配置するスタイルだった。 oboe2uran.hatenablog.comこんなんじゃなくて、HTMLテンプレート, CSS, JSは、1つのディレクトリに置いた方が良いか。。。 → sta…

Java 数値の3桁区切りフォーマット

int n = 12423 から、右詰めで、3桁区切りの長さ12の文字列を求める時、 [ 12,423]面倒くさい古い方法、NumberFormat デフォルトを使う方法 NumberFormat nf = NumberFormat.getInstance(); String s = String.format("[%12s]", nf.format(n)); 同じよう…

SqlAlchemy クエリの簡単なサンプル

SqlAlchemy を使うなら、テーブルカラム構造のエンティティモデルObjectとの マッピングとしてクエリを書くのが教科書っぽい(スクエアな:square...)のであろう。。エンティティモデル定義を書かない方法 # -*- coding: utf-8 -*- import sqlalchemy as db…

Eclipse デバッガでの値の変更

ブレ―ポイントで単純に変数の値をダイアログでセットすれば良いだけであるけど、 List や Map などの中身を変えたい場合は、どうするか?実行式と変更後のオブジェクトを return 文で戻せばよい。

PC起動時に MsTeams を起動させない設定

MsTeamsを起動したら右上のアイコンをクリック、 「設定」を開くアプリケーションの自動起動 のチェックを外す。 拡大

Java12 からの String の transform

Java12 からの String の transform(Function function) は、 BigDecimal が String を直接解析して BigDecimal を求める static メソッドを持っていない不便さを 解消してくれる。 String str = "1230000000.0012"; BigDecimal value = str.transform(s->Bi…

Sourcetree が起動できない!

久々に、Sourcetree を起動しようとしたら、スプラッシュのロゴだけ表示されて起動できない。community.atlassian.comここに書いてあるように Windows ユーザディレクトリの Sourcetree の作業フォルダ毎、 削除すれば、復活した。XXXX ユーザ、以下フォルダ…

String の isBlank() と isEmpty()

半角や全角スペースのみの文字列に対して isBlank() true isEmpty() false Apach commons lang3 StringUtils.isBlank(Strring) を使いたくなくて null を考慮するなら、 boolean b = str==null ? true : str.isBlank(); あるいは、 boolean b = Optional.ofN…

アノテーションで指定するnullオブジェクトのJSONシリアライズ

以前紹介した、Jackson シリアライズで、null オブジェクトを出力させない - Oboe吹きプログラマの黙示録 は、ObjectMapper で一律に指定する方法だが個別に指定する方法として対象クラス定義に アノテーションで指定する方法がある。 com.fasterxml.jackson…

Java11 Httpclient のレスポンスをJSONとして受け取るケース

Java11 Httpclient のレスポンスをJSONとして受け取るケースを工夫してみる。 HttpResponse<String> で String 取得してからJSON にする方法 String url; // TODO URL string HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build()</string>…

Jackson の PrettyPrinter

Jackson による整形したJSONのテキスト出力は、これという1つが決めることができない。 例) {"A":"Blue","B":[10,12,14],"C":[{"length":[100,120,140]},{"length":[100,120,140]}]} DefaultPrettyPrinter の indentObjectsWith と indentArraysWith を指…

JSON の部分的な抽出

JSONのパス区切り文字を "." ピリオド、配列を [0], [1] ~の書式で 指定していJSONの該当パス部分のみを抽出したい。GitHub - yipuran/yipuran-jack: Jackson Java JSON-processorを使用する時の補助を目的したライブラリここで、作った org.yipuran.json.J…

jackson-datatype-jsr310 を使う

<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.15.2</version> </dependency> SimpleModule を使う場合、 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.faster…

Excelで作ったデータ表をDB(MySQL)に簡単な操作でセットするPythonのツール

Python で、Excelファイルを受け取り MySQL DBに簡単にデータをセットする。 PCで実行するので、用意する Python スクリプトは、pyinstaller で EXE化をする。 DB接続情報とシートにデータを書き込んだ Excel ファイルを ドラッグアンドドロップでPython …

ファイルパスから多種の情報を取得する os.path

しょっちゅう使いそうなのでメモ os をインポート import osファイルパスから、ディレクトリパス dirpath = os.path.os.path.dirname(filepath)ファイルパスから、ファイル名 filename = os.path.basename(filepath)ファイルパスから、拡張子とそれ以外に分…