1. 神経質やせ男チャンネル
  2. pywebview入門JSON→CSV変換の..
pywebview入門JSON→CSV変換の落とし穴
2026-02-09 03:24

pywebview入門JSON→CSV変換の落とし穴

pywebviewで作成したJSON→CSV変換ツールのソースコードを読み解きながら、
実際につまずいたポイントやPython特有の挙動を整理。
「なぜエラーが出たのか」「なぜ動いたのか」を理解するための振り返り回です。

#pywebview
#Python学習
#個人開発
#ソースコード解説
#プログラミング初心者
---
stand.fmでは、この放送にいいね・コメント・レター送信ができます。
https://stand.fm/channels/608520b1eeca46c0ab7489cd

感想

まだ感想はありません。最初の1件を書きましょう!

00:06
神経質やせ男です。 今日は、JSON→CSV変換ツールのソースコードでつまずきやすい点の解説会です。
昨日は、新しいコードを書くというより、一昨日に作ったソースコードをじっくり理解する時間に当てました。
まず最初につまずいたのが、JSONファイル選択ダイアログで、キャンセルを押した場合の挙動です。
JSONを選ばずにキャンセルすると、なぜかプログラムがエラーを吐いて止まる。
原因を追っていくと、キャンセルされた場合の処理を何も書いていなかったというかなり基本的なミスでした。
そこで、キャンセルされたら何もしないで戻るという処理を追加することで解決しました。
面白いのは、CSVの保存ダイアログでは、既にキャンセル時の処理が書かれていた点です。
同じダイアログでも書いてある、書いてないで、挙動が全く変わる。
ここは実装して初めて気づいたポイントでした。
次に疑問に思ったのが、TrueやFalseがいつの間にか文字列として書いている問題です。
Pythonでは、Boolean型の結果を辞書に入れてリターンすると、受け取る側では文字列として扱える形に変換されます。
型宣言が不要なPythonならではの挙動で、便利な反面、分かりづらさもあるなぁと感じました。
同じ流れで例外処理、いわゆるExceptの中身も気になりました。
リターンを書いていない場合、一体何を返しているんだろうと調べたところ、例外時はNone型が返せるということが分かりました。
そしてそれを受け取ったメイン側で、最終的にErrorというステータスに変換して返しているという流れになっています。
こうやって追ってみると、プログラムはちゃんと道筋立てて動いているんですが、書いた本人でも一度整理しないと分からない部分が多いですね。
さらにもう一つ、ライブラリー内で使っているセルフウィンドウのアンダースコアについても調べました。
アンダースコアには外からなるべく触らないでねという意味合いがあり、強さにも段階があります。
今回は回収のしやすさとバランスを考えてアンダースコア一つにしています。
この辺りも実際に作ってみないと意識しない部分でした。
最後にデバッグ・トゥルーの設定について。
PiWebViewはWebベースのデスクトップアプリなので、普通のウェブ開発のようにF12キーが使えません。
その代わりとしてこのデバッグモードをONにすることで、Python側からヒラを終えるようになります。
画面が常に出るので少し鬱陶しくはありますが、開発中は必須だなぁと感じました。
こうして振り返ってみて、JSONからCSV変換ツールについては自分の中で9割ぐらい理解できたと思います。
03:02
あとはこれを実際のアプリ開発でどう使い回していくか、次はその実践フェーズに進んでいく予定です。
今日はここまでです。
次回はPiWebViewで常駐トゥルーアプリを作ってみた話についてお話しする予定です。
ご静聴ありがとうございました。
03:24

コメント

スクロール