【发布时间】:2015-01-17 15:17:46
【问题描述】:
我正在尝试获取一系列序列化字典,其中只有一个特定值发生变化。
名为“obj”的虚构python字典
_gen = (value for value in range(5,10))
obj = {'mcu': {'led0': {'duty': _gen}}}
应该像这样“工作”:
>>> json.dumps(obj)
'{"mcu":{"led0":{"duty": 5}}}
>>> json.dumps(obj)
'{"mcu":{"led0":{"duty": 6}}}
>>> json.dumps(obj)
'{"mcu":{"led0":{"duty": 7}}}
有办法存档吗?
也可以这样做:
_placeholder = <some trick to create a placeholder>
obj = {'mcu': {'led0': {'duty': _placeholder}}}
应该像这样“工作”
>>> <placeholder modification trick> = 5
>>> json.dumps(obj)
'{"mcu":{"led0":{"duty": 5}}}
>>> <placeholder modification trick> = 6
>>> json.dumps(obj)
'{"mcu":{"led0":{"duty": 6}}}
>>> <placeholder modification trick> = 7
>>> json.dumps(obj)
'{"mcu":{"led0":{"duty": 7}}}
【问题讨论】:
-
它是否必须与准系统
json.dumps一起使用?使用自定义编码器或指定default函数可以轻松地将生成器替换为其当前值。
标签: python json serialization dictionary lazy-evaluation