技術検証したり、資格等をここに残していきます。技術PythonでJSONを比較したいという記事を過去に書きました。日付項目等々の固定しづらい項目を無視して比較するというユースケースが達成できていませんでした。今回の記事では、一部項目を無視して比較する方法を記載します。前提Python3.11DeepDiff6.3.0対応DeepDiffを使用します。導入DeepDiffをインストールしてください。deepdiff比較DeepDiffを使うには、DeepDiffのインスタンスを元に比較します。過去の記事と同様に、json.loadsメソッドを使ってJSONをDict型に変換します。updatetimeを無視するようにするため、DeepDiffのインスタンス作成時にexclude_pathsを渡します。{}ソースコードhttps://github.com/hirotoKirimaru/python-practice/blob/main/tests/test_deepdiff.py終わりになかなかJSONの特定の項目を無視する方法が見つかりませんでした。DeepDiff自体にはオプションが大量にあったため、細かい比較をする際にも役立ちそうです。2023年4月19日時点で、1.6KのStarもあることからPythonでのJSON比較のスタンダードなのかもしれません。基本的には公式ヘルプ読んでください。対応base:ブランチ名で特定のブランチに対するPRをフィルタリングできます。fromではなく、toのブランチ名を指しています。ブランチを切るときのbaseとして考えると、意味合いは正しいのですが、混乱しました。base:{ブランチ名}base:develop逆にfromブランチでフィルタしたい場合は、head:ブランチ名を使用します。head:{ブランチ名}head:featureなお、baseもheadも前方一致で検索できます。syntaxから該当のヘルプページに遷移できます。終わりに地味ですが、重宝します。検索するとすぐにひっかかるのですが一番最初に検索されるページは概要で、詳細ページに遷移しなかったのでブランチ名での検索はできないものだと勘違いしていました。技術メソッド呼び出し元で引数が指定されていない場合は、デフォルト値を与えられます。キーワード引数を使用すると、任意のパラメータに値を与えられます。意図的にメソッド呼び出し元でNoneを渡してしまった場合、デフォルト値を使用できません。今回の記事では、パラメータの値がNoneの場合はメソッドに渡さず、値が含まれている場合はメソッドに渡します。辞書型をパラメータに使用します。辞書型で**を使用するとキーワード引数に展開されて使用できます。None辞書型で値がNoneの時にキーを削除する処理をします。3ただ私が慣れていないこともあり、非常に読みづらいので必要な項目だけ辞書型に絞ったほうが分かりやすいと思います。辞書型を動的に加工するので静的解析が効きません。具体的には定義していないキーワードを指定していても、静的解析が効かなくなるのでTypoをした場合に気付くタイミングが遅れてしまいます。画像はVSCodeの警告の有無を表現しています。DictDomain.action(**param2)ソースコードhttps://github.com/hirotoKirimaru/python-practice/blob/2e0ee8a48a8d861ed7bb87c560f405aac37c9c42/tests/test_dict.py#L17-L38終わりにFactory_boyを使用してデータのセットアップをしていましたが、NotNullで定義している項目に対してNoneを設定するとValidationErrorが発生します。このエラーを回避しようとしましたがFactory_boy側で回避する方法が見つからなかったため、呼び出し側で対処するようにしました。テストコードなので次のコードのように単純化しようとしましたが、項目が多かったのと共通化したかったので、今回の方式を取ろうとしています。"b"="b")非常に使い道のうすい使い方だと思っていますが、ぜひ使ってみてください。12:00問い合わせはこちらから。//List形式の画面で記事を入れる場所。上から2個目と7個目のsectionの後に入れる。//記事内で個別に指定されないときに使うAd挿入場所。//0から始まる値で、2を指定すると3番目のと直前に差し込む。insertAdsense();引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。