Windows環境では SourceTreeをアップデートしてもツールバーの破棄ボタン、 あるいは、変更ソースを右クリックして表示されるコンテキストメニューで 破棄は消えていないが、 Mac環境にインストールした SoureceTree ではこの「破棄」が存在しない。 GITコマ…
昔作成して公開している CSVの読み書き、 GitHub - yipuran/yipuran-csv: Java CSV read and write の中の csvobject · yipuran/yipuran-csv Wiki · GitHub から、CsvObject を継承して、TSV を総称型指定のクラスで読込む。 変更点は、 org.yipuran.csv4j.C…
読込みと同じ方法で対応できる。 oboe2uran.hatenablog.comTSVの書き込みの場合の継承元は、yipuran-csv の Wiki - CSV書き込みを参照 CsvCreator と同じ方法の interface TsvCreator CsvwriteArrayStream と同じ方法の interface TsvwriteArrayStream Csvwr…
昔作成して公開している CSVの読み書き、 GitHub - yipuran/yipuran-csv: Java CSV read and write これは、TSV ファイルで使用することを目的にしていなかった。 長いこと開発をしていて、なかなかTSVファイルを対象にすることが少なかった。 この yipuran-…
ATOM エディタ開発終了になってしまってからかなり時間が経つけど、 後継の Zed editor は、なかなか、Windows版が出てこない。https://github.com/zed-industries/zed/issues/5394
うっかり shallow copy のまま操作してしまうのを注意したい。 サンプル { "A" : "a", "B" : { "B01" : "b01-01234", "B02" : { "detail" : "test_sample", "name" : { "type" : "merge", "len" : 12 } } }, "C" : [ 100, 160, 300 ] } この JSONを表すStrin…
PostgreSQL とは違って、ルートを$文字で指定して、"->" による連結ではなく JSON列名 -> path あるいは、 JSON列名 ->> path で、文字列とての参照になる。 path 部分が、$から始まってJSONキーを '.' ピリオド区切り文字で指定する。例) jdataという列…
PostgreSQL の JSON_SET/JSONB_SET と同じ要領で使うと失敗する。 JSON_SET(json_doc, path, val[, path, val] ...) path の指定は、JSONルートの $ から、区切り文字 '.' ピリオドで指定する。 PostgreSQL のようにキーが存在しなかったらセットする/しな…
巨大なJSON、階層が深かったり値の文字列がとても長かったりする時は、整形したとしても とても見にくく目視確認に困る。 確認しなくても済むものは、取り除いてしまいたい。 以下、そんなに大きくないJSON でそういう場合の方法、Jacksonライブラリの JsonN…
例)jbooks というテーブルの列名=jdata が JSONB型だとする。ObjectMapper の writeValueAsString に頼る方法 SQLMap XML で bindタグで、writeValueAsString が働くようにする。 <insert id="insertJbook"> <bind name="jdata" value="objectMapper.writeValueAsString(object)" /> INSERT INTO jbooks (id, title, jdata) VALUES(#{id}, #{title}, '${jda</bind></insert>…
例) 列名 jdata というJSONB列に以下の json データが入っているとする。 { "fr": 11, "key": "E", "pub": "ara", "item": { "name": "orange", "group": { "x01": "AX193", "x02": "AX248", "c923": "A_982" }, "price": 231, "oprion": " " }, "point": 1…
OpenShift のコマンドのメモ oc rsync <source> <destination> [-c <container>]/home/user/source をコンテナ内 /src にコピー $ oc rsync /home/user/source devpod1234:/srcこれの逆 $ oc rsync devpod1234:/src /home/user/source</container></destination></source>
2つのログファイルをマージするツールを Python で作りました。 【作った理由】 ・Windows にダウンロードしたりしたログファイルを簡単にドラッグアンドドロップの操作で ログ出力のログのタイムラインに沿ってマージしたい。 → パラメータで2個のログフ…
先日書いた JSONB の primary key を作る ( by PosetgreSQL ) - Oboe吹きプログラマの黙示録 これでは、目的の主キーとして、任意の列とJSONB型のJSON内の値のキーとする場合の CONSTRAINT を2つ書けない制約でUPSERT文 (ON CONFLICT~DO UPDATE)を思うよ…
単純に CREATE TABLE の PRIMARY KEY で指定してもエラーになる。 CREATE TABLE public.jsample ( id int4 NOT NULL, title varchar(60) NOT NULL, jdoc jsonb not NULL, PRIMARY KEY (id, jdoc->'item'->>'id') ); SQLエラー [42601]: ERROR: "->"またはそ…
PostgreSQL でのことである。 あるテーブルの JSONB型に、以下のようなJSON値があるとする。 { "a":{ "a1": "Apple", "a2": "Lemon" } } このJSONの"a1" を null にする場合、シングルクォートで括った 文字列 ' null' 指定した以下なら成功する。 UPDATE jb…
JSON型、JSONB型、の JSON の null の扱い まずは JSON演算子の基本から、 "b" 配列の1番目 SELECT '{"a":{"b":[{"c":1},{"c":2},{"c":null}]}}'::jsonb->'a'->'b'->1->>'c' 結果は 文字型で 2 "b" 配列の2番目 SELECT '{"a":{"b":[{"c":1},{"c":2},{"c":n…
2つのJsonの キーと値が同じであるか判定する。 Java なら、 Jackson ライブラリの JsonNode に変換して、equals メソッドで判定する。 ==演算子ではダメ!Python なら、 dict に変換して、==演算子で判定して良い。 import json dictA = json.loads('{…
JSONの解析として、過去、いろいろと作ってきた。 Jackson でJSON読込み key-value の BiConsumer を処理する - Oboe吹きプログラマの黙示録 Jackson でJSON読込み key-value の BiConsumer で、日付時刻も - Oboe吹きプログラマの黙示録 Jackson JSON読込み…
区切り文字や括りの1行文字列で、最初 or 最後の一致を求める正規表現 例題) 対象文字列 'AsDate'->'C'->'2'->'June'区切り文字「->」 最後の区切り文字以降 (?<=\->)([^\->]+$) ## match した文字列 'June' 最後の区切りを含んだ文字以降 \->(?<=\->)([^\…
題目:2つのリスト、alist と blist alist に存在しない blist と合わせて結果 alist にする。(マージする) 結果はソートする。 結果は alist にする。 alist = [ 'a', 'c', 'b' ] blist = [ 'c', 'd', 'e', 'a' ] 単純にすぐに書いてしまう原始的なコー…
対象クラス abusiness.py from threading import Thread class AThread(Thread): def run(self)->None: print("AThread!") # TODO 処理 AThread を実行するテストされるクラス some.py class Some: def exec(self)->None: a = AThread() a.start() a.join() …
UPDATE tablename SET column = value WHERE ~ RETURNING ~ に続けて GROUP BY を書いて利かせたいと思ってそのまま書いてはダメである。WITH 句を使う。例) WITH sampleupdate AS ( UPDATE samples SET delete_flg = true WHERE delete_flg = false RETURN…
昨日、Java の祝日計算プログラムが配布先を移動したりメンテナンスしたので、 ついでに Python 版もこれと一緒に公開することにしました。 Python での日本の祝日を抽出するものは、いろんなものが既に出回っているようですが、 計算で求めるようなものは少…
入れ子状態のリストを1次元のリストに作りなおす。 例) list = [['A', 'B'], [], ['C', 'D'], ['E']] これを、['A', 'B', 'C', 'D', 'E'] にする list = [v for list_nest in list for v in list_nest] # ['A', 'B', 'C', 'D', 'E'] 辞書のリスト→1つの辞…
中国に買収されてしまったOSDN(Open Source Development Network) もはや、ここで Java祝日計算プログラムを公開する価値はなく、、 (というか、まともに繋がらなくなっているし、ダウンロードもできない) ようやく GitHubで公開することにした。https:/…
プログラムの管理の側面から、mybatis の SQLMapper をプログラムの動作中に追加することは 禁止されるべきであろう。 でも、SQLMap の XML を用意せずに Mappper インターフェースを追加することは可能なのです。SqlSession session という生成済みの SqlSe…
Java で JSON を編集するときによく使われるのが Jackson ライブラリであろう。 巨大で階層が深い中の値を変更するのは、Jackson の JsonNode としてJSONを読み込んで、コードを書くのも 面倒くさいばかりでなく、あまり汎用的なものは期待できない。 Postgr…
日付時刻出力のメモを、あえて自分でメモしたくなった。何も考えないで。。 import datetime import re ndt = datetime.datetime.now() print(type(ndt)) # <class 'datetime.datetime'> print(ndt) # 2023-11-22 20:22:21.038937 strftime を使う。 ndt = datetime.datetime.now() prin</class>…
JSON型json_pretty( column ) JSONB型jsonb_pretty( column )JSONB型の方が使う機会が多そう。 SELECT jsonb_pretty('{"f1":1,"f2":null, "f3":[1,2,3]}') { "f1": 1, "f2": null, "f3": [ 1, 2, 3 ] }