1

我正在更新一个使用旧版本 cjson 来加速其 json 编码的旧项目。它还有一个名为 JSONString 的自定义类(将字符串设置为其“值”属性),用于与数据库进行通信。

它曾经调用 cjson.encode( (dict contains a JSONString) , (custom encoding funct for JSONSTRING) ) 但较新版本的 cjson 已将其参数更改为仅接受一个参数,并且不公开任何其他可能允许自定义的函数编码过程。在没有自定义编码器的情况下对 dict 进行编码会引发 EncodeError(对象不可 JSON 编码)。

我现在的选择是要么找出如何在 cjson 中使用自定义编码器,修改 cjson 源(试图避免修补库),要么在操作之前将插入 dict 的 JSONString 类型转换为字符串,但我试图避免在整个代码中放置“修复”(划分和可重用性等等)。以某种方式修改 JSONString 以便编码器获取它的字符串值而不是抛出异常也可以,但我对 python 的怪癖了解不多。我可以理解为什么 cjson 可能不允许自定义编码器(速度原因),但如果没有办法,我可能只需要找到其他东西。

任何建议将不胜感激。

4

1 回答 1

0

浏览我未答复的帖子并记得我从未将其标记为已回答。Yavar 的帖子确实有帮助;python有一个增强版的cjson。它运行良好,但有时会出现一些有趣的名称冲突,因此请注意这一点。

http://python.cx.hu/python-cjson/

于 2012-08-06T19:53:45.150 回答