代码之家  ›  专栏  ›  技术社区  ›  humanityANDpeace

如何转换操作系统统计结果对于一个对象的JSON?

  •  1
  • humanityANDpeace  · 技术社区  · 5 年前

    我知道 json.dumps 可用于将变量转换为JSON表示形式。可悲的是蟒蛇的职业转换 os.stat_result 是由表示类实例值的数组组成的字符串。

    >>> import json
    >>> import os
    >>> json.dumps(os.stat('/'))
    '[16877, 256, 24, 1, 0, 0, 268, 1554977084, 1554976849, 1554976849]'
    

    但我更希望它能转换 操作系统统计结果 转换为一个对象的JSON。 我怎样才能做到这一点?

    看来问题是 没有 .__dict__ 事情。

     >>> import os
     >>> str(os.stat('/'))
     'os.stat_result(st_mode=16877, st_ino=256, st_dev=24, st_nlink=1, st_uid=0, st_gid=0, st_size=268, st_atime=1554977084, st_mtime=1554976849, st_ctime=1554976849)'
    

    这让我希望有一种快速的方法来转换python类实例(例如`操作系统统计结果)转换为对象的JSON表示。

    但结果是

    1 回复  |  直到 5 年前
        1
  •  5
  •   a.k    5 年前

    def stat_to_json(fp: str) -> dict:
        s_obj = os.stat(fp)
        return {k: getattr(s_obj, k) for k in dir(s_obj) if k.startswith('st_')}
    
        2
  •  1
  •   gst    5 年前

    但我更希望它能转换操作系统统计结果转换为一个对象的JSON。我怎样才能做到这一点?

    如果你所说的JSON是指有一个带键的dict st_mode st_ino 等等。。那么答案是。。手动操作。