hum*_*ace 7 encoding json python-3.x
我知道json.dumps可用于将变量转换为 JSON 表示。可悲的是,python3 的类的转换os.stat_result是一个字符串,由一个表示类实例值的数组组成。
>>> import json
>>> import os
>>> json.dumps(os.stat('/'))
'[16877, 256, 24, 1, 0, 0, 268, 1554977084, 1554976849, 1554976849]'
Run Code Online (Sandbox Code Playgroud)
然而,我更愿意让它将os.stat_result被转换的对象转换为 JSON 对象。我怎样才能做到这一点?
看来麻烦的是os.stat_result没有.__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)'
Run Code Online (Sandbox Code Playgroud)
让我希望有一种快速的方法可以将 python 类实例(例如`os.stat_result”)转换为作为对象的 JSON 表示。
虽然是 JSON,但结果是
正如 gst 所提到的,手动将是这样的:
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_')}
Run Code Online (Sandbox Code Playgroud)
然而,我更希望将 os.stat_result 转换为 JSON 作为对象。我怎样才能实现这个目标?
如果通过 JSON 你的意思是有一个带有 key st_mode、st_ino等的字典,那么答案是 .. 手动。
| 归档时间: |
|
| 查看次数: |
813 次 |
| 最近记录: |