Python zip() 不是 JSON 可序列化的

标签 python json

我的 Python 字典 holder 包括以下元素:

'sr': map(list,zip(df['year'].values,df['sr'].values)),
'nom': map(list,zip(df['year'].values,df['nom'].values))} for df in np.array_split(data, len(data['cou'].unique()))]

当我执行 json.dumps(holder) 时抛出错误:

TypeError: 2007 is not JSON serializable

我怎样才能避免这个错误?

最佳答案

我添加了 .tolist() 并且它有效;

holder = [{'cou':df['cou'].unique()[0],
           'region':df['cou'].unique()[0],
           'value': map(list,zip(df['year'].values.tolist(),df['value'].values.tolist())),
           'sr': map(list,zip(df['year'].values.tolist(),df['sr'].values.tolist())),
           'nom': map(list,zip(df['year'].values.tolist(),df['nom'].values.tolist()))} for df in np.array_split(data, len(data['cou'].unique()))]

json.dumps(holder)

'[{"sr": [[2007, 8], [2008, 7], [2009, 6], [2010, 5]], "region": "China", "cou": "China", "value": [[2007, 1], [2008, 2], [2009, 3], [2010, 4]], "nom": [[2007, 1], [2008, 3], [2009, 2], [2010, 5]]}, {"sr": [[2007, 4], [2008, 3], [2009, 2], [2010, 1]], "region": "England", "cou": "England", "value": [[2007, 5], [2008, 6], [2009, 7], [2010, 8]], "nom": [[2007, 4], [2008, 6], [2009, 7], [2010, 5]]}]'

关于Python zip() 不是 JSON 可序列化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25398202/

相关文章:

python - 是否有与 Python 的 re.findall/re.finditer(迭代正则表达式结果)等效的 Perl?

python - 使用 matplotlib 将一些文本显示为粗体

python - Pytorch: AttributeError: 'function' 对象没有属性 'copy'

javascript - 在 Jquery 中加载 JSON 数组作为工具提示

python - 从重复项 JSON 中获取不同的值

c# - 返回 Json,但它包含反斜杠 "\",我不想要

javascript - 将Json以特定格式传递给javascript以渲染图表

java - jackson JsonMappingException : Unrecognized column 'C' : known columns {"A" ,"B"}

python - Bottle - 是否可以在没有参数的情况下检索 URL?

Python:有时,元类属性会覆盖类属性吗?