我有一个相当复杂的字典,我想将其转换为JSON对象。
dataj = json.dumps(post_data)
我收到以下错误:
TypeError: 6 is not JSON serializable
但是,如果我打印我的字典:
print post_data
然后我将这个post_data复制/粘贴回同一个变量:
post_data = pasted data
Json.dumps有效。不知道为什么会发生这种情况,但我怀疑它在复制文本并将其粘贴回来时与正确的换行符有关。我有什么办法可以避免这样做吗?
答案 0 :(得分:1)
看起来你正在使用NumPy;我之前遇到过这个问题。
当print
{N}时,NumPy将不可序列化的原始类数据类型表示为基元。复制并粘贴输出时,您将获取该文本并将其重新输入为实际原语(当然,这是JSON可序列化的。)
所以你基本上有两个选择:将代码重构为use NumPy's .tolist()
(及相关函数)或enhance the JSON serializer以接受NumPy数据类型。