我知道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]'
但是,我更希望将其转换为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)'
让我希望有一种快速的方法可以将python类实例(例如`os.stat_result“)转换为作为对象的JSON表示形式。
虽然是JSON,但结果是
答案 0 :(得分:1)
但是我更希望将其转换为要转换为对象的JSON的os.stat_result。我该如何实现?
如果用JSON表示您的字典有键st_mode
,st_ino
等,那么答案是..手动。
答案 1 :(得分:0)
如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_')}