我有一个由pandas生成的字典列表,格式如下。我想将它转换为JSON格式。
list_val = [{1.0: 685}, {2.0: 8}]
output = json.dumps(list_val)
然而,json.dumps会抛出一个错误:TypeError: 685不可序列化为JSON。
我猜测这是从numpy到python的类型转换问题(?)。
然而,当我使用np.int32(v)来转换数组中每个字典的值v时,仍然会出现错误。
编辑:这是完整代码
new = df[df[label] == label_new]
ks_dict = json.loads(content)
ks_list = ks_dict['variables']
freq_counts = []
for ks_var in ks_list:
freq_var = dict()
freq_var["name"] = ks_var["name"]
ks_series = new[ks_var["name"]]
temp_df = ks_series.value_counts().to_dict()
freq_var["new"] = [{u: np.int32(v)} for (u, v) in temp_df.iteritems()]
freq_counts.append(freq_var)
out = json.dumps(freq_counts)
[{"1.0": 685}, {"2.0": 8}]
- MattDMolist_val
是一个 numpy 数组? - Padraic Cunninghamfreq_var
中为什么要放置np.int32(v)
而不是v
(或者int(v)
;我不确定v
是什么)? - abarnertrepr
和type
,而不仅仅是打印它们的str
。 (并将结果包含在您的问题中。)知道您有一个np.float32
或其他类型会比猜测可能存在某种类型转换问题要容易得多。 - abarnert