タグ

ブックマーク / pod.hatenablog.com (3)

  • goで直接reflectを使わずinterfaceを含んだstructをJSONでencode/decodeする方法 - podhmo's diary

    この記事はGo Advent Calendar 2021 4の19日目の記事です1。 goのencoding/jsonの機能はそこまで柔軟ではない。どこかで諦めたほうが良い事が多い2。 とはいえ、いろいろなことを柔軟にやってみる方法を検討してみるのは良いことなので検討してみる。 interfaceを含んだstructはdecodeできない interfaceを含んだstructはencodeはできるがdecodeができない。 例えば、以下のようなstructを考えてみる。Stringerの方は String() string を持つことを期待するinterface。 type S struct { Name string Stringer fmt.Stringer } type F struct{ Name string } func (f *F) String() string { re

    goで直接reflectを使わずinterfaceを含んだstructをJSONでencode/decodeする方法 - podhmo's diary
    teppey
    teppey 2024/04/13
  • json モジュールについて - podhmo's diary

    はじめに この記事はadventerの方のPython Advent Calendar の3日目の記事です。 (qiitaの方にもadvent calendarがあるみたいです) この記事ではpythonの標準ライブラリの jsonモジュール について書くことにしました。advent caledarで何を書くか少し迷ったのですが、誰も知らない自作のライブラリを紹介するといった記事よりは、pythonを使う誰しもが日常的に使っている何かについて、ちょっとだけ詳しく覗いてみるだったり、ちょっとだけ考えてみるというような記事の方が良いのでは無いかと思いました。なので標準ライブラリの中からjsonモジュールを選んでみました。 about json module jsonモジュールはJSON形式の文字列表現とpython object間のserialization・deserializationを担

    json モジュールについて - podhmo's diary
  • pythonのnamedtupleについて見過ごしてきたこと - podhmo's diary

    pythnonのcollectionsにnamedtupleがありますが。コレについて見過ごしてきたことがありました。以下のようなコードがTrueを返してしまいます。 from collections import namedtuple Foo = namedtuple("Foo", "name value") Bar = namedtuple("Bar", "name value") foo = Foo("spam", 42) bar = Bar("spam", 42) print(foo == bar) # => True これは結局、namedtupleは名前の通りtupleでしかないせいです。tupleなので型名を持っていません。したがって、同じ順序で同じ値が渡されていたものは比較でTrueになるというわけです。 それでは、アクセス子として生成される名前も無意味なのでしょうか? F

    pythonのnamedtupleについて見過ごしてきたこと - podhmo's diary
  • 1