
1 fgwmlhdkkkw 2021-09-22 09:31:46 +08:00 msgpack |
2 chaleaoch OP @fgwmlhdkkkw 还是不支持 datetime ... |
3 fgwmlhdkkkw 2021-09-22 09:48:50 +08:00 |
4 abersheeran 2021-09-22 09:50:30 +08:00 自己定义 datetime 的序列化与反序列化方式不就好了。golang 里同理。 不过我建议你先把 golang 的写好,因为 python json 自定义起来比 golang 方便多了,python 能轻松解析的 json,golang 可不一定。 |
5 ysc3839 2021-09-22 09:54:27 +08:00 @chaleaoch msgpack 自己就有 timestamp 类型的扩展支持。就算不支持也可以自己实现,msgpack 有 ext 类型。 |
6 arthurire 2021-09-22 09:55:34 +08:00 你可以直接转换成 Unix epoch 然后再序列化吧? |
7 ipwx 2021-09-22 10:18:00 +08:00 1. json 比较通用,所以大概还是用 json 更好。 2. 你可以扩展标准的 json encoder 。第三方 json encoder 比如 ujson 好像也支持。 3. 或者其实比如我,一般都直接把 datetime 转换成 timestamp ( python timestamp * 1000 变成毫秒)然后丢给 C++ 的。C++ 也是存 timestamp 丢给 python 。 |
8 2i2Re2PLMaDnghL 2021-09-22 10:24:02 +08:00 这个 Python 没有 trait 就是逊啦 不然直接 impl datetime for JsonSerializable 不就行了 题外话,其实我感觉你直接 pydantic 就行。 确实推荐按类型动态性由弱到强地写。 python dict 是 dict[Hashable, Any] ,比 JSON 还动态。 |
9 chaleaoch OP @fgwmlhdkkkw 我知道 我可以自定义 encoder 实现. 这没问题. 我的问题是 json 除了不支持 datetime 是否还有其他不支持的格式. |
10 chaleaoch OP @2i2Re2PLMaDnghL 问题是 session 已经存在了 , 现在是在一个既存的应用上改. 如果新项目方案就很多了. |
11 zeroxia 2021-09-22 10:38:34 +08:00 flatbuffers? |
12 misaka19000 2021-09-22 12:23:51 +08:00 ES 用的就是 JSON,没什么问题的 |
13 2i2Re2PLMaDnghL 2021-09-22 16:05:20 +08:00 @chaleaoch json 就 7 种内容不是吗? object array string number true false null 对应 dict list str int/float True False None 你可以估计大部分是不支持的 除非你写成 pydantic,能打通 object <=> dict 的界面,类比 ORM 我叫它 OJM 吧 |
14 Nich0la5 2021-09-22 17:05:59 +08:00 Protobuf |
15 chaleaoch OP @2i2Re2PLMaDnghL 谢谢. 你说的没错, 要这么干又要照顾应用层了. 最后的方案是我们把这个功能砍了. - - 后面再说. |
16 neoblackcap 2021-09-22 19:04:01 +08:00 只是让 datetime 类型支持 json 格式序列化的话,直接实现 encoder/decoder 就好了,不管是 go 还是 python 的标准库都可以支持这个操作。 |
17 Hstar 2021-09-22 19:12:22 +08:00 你猜你想问 Django 默认的 json 序列化器额外支持了哪些类型,可以直接看 DjangoJSONEncoder 的源码 https://github.com/django/django/blob/ca9872905559026af82000e46cde6f7dedc897b6/django/core/serializers/json.py#L77 可见除了 datetime 的几个类型外,还做了 UUID 、decial 和 django.Promise 的 json 序列化支持 |
18 tmackan 2021-09-22 19:19:03 +08:00 json |
19 zepc007 2021-09-23 09:36:16 +08:00 @2i2Re2PLMaDnghL +1,pydantic 好评 |
20 O5oz6z3 2021-09-23 17:23:29 +08:00 偶然看到 https://hynek .me/articles/serialization/ |