何か@dataclass_jsonなデータクラスを作ってJSONで出力すると、boolの筈のメンバーが0とか1になる事が。
Pythonの型は動的とかいう不完全不徹底な型システムであり、代入時にヘマをすると何事も無かったかのような顔をしてエラーも出さずにしれっと変数の型は変わる。今回は代入時にヘマをしているに違いない…。
この文字列'True'をstrtobool()で変換しているだけなのにしかしJSONでは1になる、その怪しい変数の型を変換直後のタイミングでprintしてみると「int」…マジか?!マジで?!マジだ!!
まぁ結局更にそれをbool()で囲む、bool(strtobool(文字列))で上手く行ったが…。
strtoboolと言う名前の関数の戻り値の型がintとは、Pythonの標準ライブラリを作った奴はどうかしているね。因みにこの標準ライブラリは3.12では無くなるという…。こんないかにも彼方此方で使っている関数をバッサリとは、Pythonの標準ライブラリをメンテしている奴もどうかしている。
やっぱ信用できてかつ程よく簡単なのはJavaかC#だけや…C#は殆ど知らぬからつまりJavaだけ。
Pythonの型は動的とかいう不完全不徹底な型システムであり、代入時にヘマをすると何事も無かったかのような顔をしてエラーも出さずにしれっと変数の型は変わる。今回は代入時にヘマをしているに違いない…。
この文字列'True'をstrtobool()で変換しているだけなのにしかしJSONでは1になる、その怪しい変数の型を変換直後のタイミングでprintしてみると「int」…マジか?!マジで?!マジだ!!
まぁ結局更にそれをbool()で囲む、bool(strtobool(文字列))で上手く行ったが…。
strtoboolと言う名前の関数の戻り値の型がintとは、Pythonの標準ライブラリを作った奴はどうかしているね。因みにこの標準ライブラリは3.12では無くなるという…。こんないかにも彼方此方で使っている関数をバッサリとは、Pythonの標準ライブラリをメンテしている奴もどうかしている。
やっぱ信用できてかつ程よく簡単なのはJavaかC#だけや…C#は殆ど知らぬからつまりJavaだけ。
コメント