一种可能的方法是拥有一个serialize
函数,该函数可以 即时 生成字典的副本并使用标准json
模块来转储字符串。初步实现如下所示:
import json
def serialize(data):
_data = {}
for k, v in data.items():
if isinstance(v, int):
_data[k] = hex(v)
else:
_data[k] = v
return json.dumps(_data, indent=4)
if __name__ == "__main__":
data = {"a":1, "b":2.0, "c":3}
print serialize(data)
输出:
{
"a": "0x1",
"c": "0x3",
"b": 2.0
}
请注意,此初步实现不适用于列表,但是可以轻松更改。
有些人可能认为这种方法会占用大量内存,因为它会创建原始数据的副本。可能是这种情况,但是如果您的数据结构太大,那么您应该(a)不使用JSON,或(b)在工作目录中创建JSON模块的副本并根据需要进行调整。
干杯。