Python:有趣的json.dumps序列化怪癖

时间:2014-04-04 20:46:05

标签: json python-2.7 numpy

我有一个相当复杂的字典,我想将其转换为JSON对象。

dataj = json.dumps(post_data)

我收到以下错误:

TypeError: 6 is not JSON serializable

但是,如果我打印我的字典:

print post_data

然后我将这个post_data复制/粘贴回同一个变量:

post_data = pasted data

Json.dumps有效。不知道为什么会发生这种情况,但我怀疑它在复制文本并将其粘贴回来时与正确的换行符有关。我有什么办法可以避免这样做吗?

1 个答案:

答案 0 :(得分:1)

看起来你正在使用NumPy;我之前遇到过这个问题。

print {N}时,NumPy将不可序列化的原始类数据类型表示为基元。复制并粘贴输出时,您将获取该文本并将其重新输入为实际原语(当然,这是JSON可序列化的。)

所以你基本上有两个选择:将代码重构为use NumPy's .tolist()(及相关函数)或enhance the JSON serializer以接受NumPy数据类型。