列表作为字典中不可 JSON 序列化的条目

2023-12-24

我需要将列表(或 numpy 数组)保存为 JSON 文件中的条目之一。我收到“不可 JSON 序列化”错误,并且我不知道如何修复它(以及为什么当我手动将列表传递到字典时我没有收到它)。

My code:

def get_col_stats(colname, numrows=None):
    print('start reading the column')
    df = pd.read_csv('faults_all_main_dp_1_joined__9-4-15.csv', engine='c', usecols=[colname], nrows = numrows)
    print('finished reading ' + colname)

    df.columns = ['col']
    uniq = list(df.col.unique())
    count = len(uniq)
    print('unique count is', count)

    if colname == 'faultDate':
        return {'type': 'date', 'min': df.col.min(), 'max': df.col.max()}
    elif count < 100000 or colname == 'name':
        return {'type': 'factor', 'uniq': uniq}
    else:
        return {'type': 'numeric', 'min': df.col.min(), 'max': df.col.max()}

d = {}

i = 'faultCode'
d[i] = get_col_stats(i, numrows=1000)
print(d)
print(type(d['faultCode']['uniq']))

json.dumps(d)

Out:

start reading the column
finished reading faultCode
unique count is 114

{'faultCode': {'uniq': [3604, 4179, 2869, ... 57], 'type': 'factor’}}

<class 'list'>

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-84-a877aa1b2642> in <module>()
      7 print(d)
      8 
----> 9 json.dumps(d)

/home/shiny/anaconda3/lib/python3.4/json/__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
    228         cls is None and indent is None and separators is None and
    229         default is None and not sort_keys and not kw):
--> 230         return _default_encoder.encode(obj)
    231     if cls is None:
    232         cls = JSONEncoder

/home/shiny/anaconda3/lib/python3.4/json/encoder.py in encode(self, o)
    190         # exceptions aren't as detailed.  The list call should be roughly
    191         # equivalent to the PySequence_Fast that ''.join() would do.
--> 192         chunks = self.iterencode(o, _one_shot=True)
    193         if not isinstance(chunks, (list, tuple)):
    194             chunks = list(chunks)

/home/shiny/anaconda3/lib/python3.4/json/encoder.py in iterencode(self, o, _one_shot)
    248                 self.key_separator, self.item_separator, self.sort_keys,
    249                 self.skipkeys, _one_shot)
--> 250         return _iterencode(o, 0)
    251 
    252 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,

/home/shiny/anaconda3/lib/python3.4/json/encoder.py in default(self, o)
    171 
    172         """
--> 173         raise TypeError(repr(o) + " is not JSON serializable")
    174 
    175     def encode(self, o):

TypeError: 3604 is not JSON serializable

But:

d = {}
d['model'] = {'cont': False, 'uniq': [1,2,3,4]}
json.dumps(d)

… 工作正常。


看起来好像有一个bug in numpy由于Python缺乏灵活性造成的json module https://bugs.python.org/issue24313。有一个decent解决方法 https://bugs.python.org/msg244359在该错误报告中:

>>> import numpy, json
>>> def default(o):
...     if isinstance(o, numpy.integer): return int(o)
...     raise TypeError
... 
>>> json.dumps({'value': numpy.int64(42)}, default=default)
'{"value": 42}'

本质上,json.dumps()需要一个default争论:

默认(对象)是一个应该返回可序列化版本的函数obj或提高TypeError。默认只是引发TypeError.

发布的解决方法只是将一个函数传递给json.dumps()转换numpy.integer价值观int.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列表作为字典中不可 JSON 序列化的条目 的相关文章

  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • Erlang dict的时间复杂度

    我想知道 Erlang OTP 是否dict模块是作为哈希表实现的 在这种情况下它是否能提供这样的性能 平均情况 Search O 1 n k Insert O 1 Delete O 1 n k 最坏的情况下 Search O n Inse

随机推荐

  • 在 Scala 中为元组组合类型类

    我正在寻找抽象来组成类型类并避免样板代码 sealed trait MyTypeClass T def add t T mystuff Something object MyTypeClass implicit def tupled A B
  • 使用excel中的公式复制数据

    请帮忙 我也有这样的情况 我不确定如何使用 vlookup 解决问题 如果有人可以指导我 那将是很大的帮助 County Status Status Count dublin In 2 dublin out 1 dublin closed
  • Plotly 和袖扣在 Anaconda 中不起作用

    我一直在上一门关于数据科学和机器学习的课程 在其中一课中 它要求我下载并使用plotly和袖扣 我成功下载并安装了它们 也成功导入了它们 但是 当尝试使用 iplot 使用它们时 它给了我一个错误 下面我附上了错误的屏幕截图 所以我想知道如
  • Swift Spritekit 等距地图触摸位置

    我已经开始做一个小型 swift spritekit 项目来自学游戏开发 它从我设法绘制的等轴测图开始 但我无法在地图的不同图块上获得精确的触摸位置 它可以工作 但有点不合适 而且看起来不一致 这是我的职能 class PlayScene
  • 使用 GoogleFinanceSource 函数通过 tm.plugin.webmining 包进行文本挖掘

    我正在在线书籍上学习文本挖掘整洁的文本挖掘 http tidytextmining com 在第五章中 http tidytextmining com dtm html financial http tidytextmining com d
  • 如何从 websocket(客户端)打印流信息?

    我想使用 websocket 打印流信息 服务器间歇性地发送信息 我正在使用while True 在下面的Python代码中循环 有没有更好的办法 from websocket import create connection def co
  • 具有恒定笔画虚线数组对象的 SVG 弧形进度条

    这是我的JSfiddle https jsfiddle net 9005q67j 我正在尝试制作一个 SVG Arc 进度条 在进度条的末尾有一个常量对象 当我使用 JavaScript 为其设置动画时 常量对象在达到 100 时会移至另一
  • 如何在 Eclipse 中激活 Faces 配置编辑器?

    当我在 eclipse 中创建 JSF2 0 项目时 打开它的 faces config xml 文件总是会启动 faces 配置编辑器 但现在我有一个 Google AppEngine 项目 并且我已经手动添加了 JSF2 和 Prime
  • 元数据中的启动脚本未运行(Python、Google Compute Engine、云存储触发器)

    我有一个在 Google App Engine 上运行的应用程序 以及一个在 Google Compute Engine 上运行的 AI 我触发 VM 实例在 Google Cloud Storage 存储桶中发生更改时启动 并尝试将启动脚
  • Rscript 问题 - 使用不同版本的 R?

    我正在尝试在 Rscript 中加载库 但它给了我一个奇怪的错误 我正在运行 2 12 1 版本的 Rscript 二进制文件 但它抱怨我的包是在版本 2 12 1 下构建的 知道这是怎么回事吗 17 55 13 trash tmp R L
  • 为生产调整 Rails 性能?

    我即将部署一个基于 Rails 3 1 x 构建的应用程序 并开始运行一些性能测试 摆弄之后ab有一段时间 我在 Heroku 上看到了一些非常令人沮丧的结果 每秒产生大约 15 个请求 在本地测试时 我看到类似的结果 这确实表明这是一个应
  • org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行:单表查询

    我正在使用 hibernate 进行一个简单的查询 没有连接 我想做的就是从表中检索最大 id 这项服务几个月来一直运行良好 但突然在过去两周内 我收到了可怕的 No row with the给定标识符存在错误 即使这个表包含数百万行 怎么
  • 如何使用 defaultdict 行为扩展 OrderedDict

    我有一个清单OrderedDict对象 我想将它们全部组合在一起 然后按每个中的水果属性对它们进行排序 我一直在尝试使用组合和排序它们defaultdict使用下面的代码 super dict apple defaultdict list
  • 如何在django中操作用户上传的文件而不保存它?

    我正在制作一个应用程序 它从 csv 文件获取数据并使用它生成图表 所有文件都包含相同的结构 由于服务器价格的原因 我决定不存储这些文件 我现在将使用 heroku 来托管这个应用程序 这是一个 Django 应用程序 我想知道如何才能使用
  • 如何切换到新的远程git存储库

    我最近将一个存储库克隆到本地驱动器 但现在我尝试将所有更改推送到一个完整的新存储库 然而 git 不断告诉我权限被拒绝 这是因为它正在尝试推送到最初克隆的存储库 DETAILS 我最初克隆自https github com taylonr
  • XSLT:如何查找节点的唯一子节点的数量?

    我的 XML 看起来像这样
  • 从 P7M 获取签名内容

    我正在使用 java jdk 1 7 和 bouncycastle 库来获取 p7m 签名文件的内容 在构建路径中 我添加了以下文件 bcpkix jdk15on 160 jar commons io 2 1 jar log4j 1 2 1
  • 服务器端控件的输入类型

    我正在使用 asp net 构建 ipad web 应用程序 我知道使用input type email 将导致 iPad 上的键盘布局发生更改 以便比默认设置更轻松地处理电子邮件输入 问题是我正在使用服务器端文本框控件 有谁知道如何让服务
  • 如何锁定滑块并防止用鼠标将值更新到 dat.GUI 菜单中

    我尝试实现一种方法来防止用鼠标更新值 实际上当three js动画已开始 通过单击按钮启动 目前 我有以下内容dat GUI menu 单击 开始 按钮后 我想阻止用户用鼠标修改参数 Rotation x and Rotation y 这是
  • 列表作为字典中不可 JSON 序列化的条目

    我需要将列表 或 numpy 数组 保存为 JSON 文件中的条目之一 我收到 不可 JSON 序列化 错误 并且我不知道如何修复它 以及为什么当我手动将列表传递到字典时我没有收到它 My code def get col stats co