今天跑一个tensorflow代码,由于最后结果需要导出为json的文件,所以采用了json.dumps直接写文件,但是一直报错:

Traceback (most recent call last):

File "predict_test.py", line 62, in

json.dump(submit, fw)

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/__init__.py", line 178, in dump

for chunk in iterable:

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/encoder.py", line 427, in _iterencode

yield from _iterencode_list(o, _current_indent_level)

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/encoder.py", line 324, in _iterencode_list

yield from chunks

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/encoder.py", line 403, in _iterencode_dict

yield from chunks

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/encoder.py", line 324, in _iterencode_list

yield from chunks

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/encoder.py", line 436, in _iterencode

o = _default(o)

File "/home/tensorflow/.pyenv/versions/3.5.3/lib/python3.5/json/encoder.py", line 179, in default

raise TypeError(repr(o) + " is not JSON serializable")

TypeError: 26 is not JSON serializable

蒙蔽了很久,怎么26这个数字不可以serializable??

定位到报错代码位置,报错代码如下:

top_indices = []

submit = []

for i in range(n):

diction = {}

diction["label_id"] = list(preds[i].argsort()[-3:][::-1])

diction["image_id"] = id_list[i]

submit.append(diction)

with open('submit.plk','w') as fw:

json.dump(submit, fw)

好像没有什么问题呀~??

做了个小测试:

In [2]: a = submit[1]

In [3]: a

Out[3]:

{'image_id': 'c532ed79f6c54fb3cf8c45004656e385079a5284.jpg',

'label_id': [25, 13, 15]}

In [4]: b = {'image_id': 'c532ed79f6c54fb3cf8c45004656e385079a5284.jpg',

...: 'label_id': [25, 13, 15]}

In [5]: json.dumps(b)

Out[5]: '{"image_id": "c532ed79f6c54fb3cf8c45004656e385079a5284.jpg", "label_id": [25, 13, 15]}'

In [6]: a == b

Out[6]: True

In [7]: json.dumps(a)

---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

in ()

...

TypeError: 25 is not JSON serializable

明明a 的值 和b 相等,为什么b就可以json.dumps,而 a json.dumps报错,懵逼一会,想想要不查看下25这个对象,原来对于a来说 25 是一个!!!

被狠狠地坑了半个小时~~由于平时做数据处理大家会经常用到numpy的array,所以大家也要注意,虽然都是整形,但numpy.int64和python的整数是不一样的,解决方案,可以用astype('in32t')或者直接用python的int()方法。

python int64_一个numpy int64的坑相关推荐

  1. 如何借助new bing修复 pyfolio: AttributeError: ‘numpy.int64‘ object has no attribute ‘to_pydatetime‘

    如何修复 pyfolio的报错 AttributeError: 'numpy.int64' object has no attribute 'to_pydatetime' 的报错? 最近使用Pytho ...

  2. 天坑!python【numpy.int64和int类型转换】

    解释说明: numpy.int64和int是不一样的!!!!一定要注意,这个坑我踩了好几天才发现!!!!! 比如说:在处理dataframe的时候,读取出来的可能是numpy.int64,但是后边的程 ...

  3. python绘制一个简单的函数图像使用到了matplotlib库和numpy库

    文章目录 效果展示: 视频链接 实现的思想 使用到的函数包 图片一对应的代码展示 图片二 对应的代码展示 注意事项 效果展示: 视频链接 python绘制一个简单的函数图像(B站视频) 实现的思想 其 ...

  4. python 数组拷贝,如何将数据从一个numpy数组复制到另一个数组

    为了回答你的问题,我玩了一些变体,并对它们进行了分析. 结论:将数据从一个numpy数组复制到另一个使用内置的numpy函数numpy.array(src)或numpy.copyto(dst, src ...

  5. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  6. 【从0开始入门python】一个半月的三万字学习笔记汇总!!!

    python学习 DAY01-DAY04基础操作 DAY05-DAY09基本模块 常用pip源 (1)阿里云 http://mirrors.aliyun.com/pypi/simple/ (2)豆瓣 ...

  7. Python 数据分析之Numpy

    Python 数据分析之Numpy Python有着大量功能强大的第三方库.这些第三方库可以大大地扩充Python的功能,我们在实际使用中往往也离不开这些第三方库. NumPy是Python的一种开源 ...

  8. Python 中的Numpy函数

    文章目录 一.什么是Numpy 1.1 ndarray 构建ndarray 1.2 数据类型 Numpy 的矢量化(向量化)功能 二.创建常用的数组 2.1 创建一个全0数组 2.2 全1数组 2.3 ...

  9. python中导入numpy库_python中的Numpy库

    导入numpy库: import numpy as np python的一个科学计算库的一个基础包,包含了强大的N维数组对象和向量运算 数组创建,可以使用array函数从常规的python列表和或元组 ...

最新文章

  1. C ++基本输入/输出
  2. d010:盈数、亏数和完全数
  3. Codeigniter设计和架构目标
  4. pearson相关系数_三个相关系数的注意事项
  5. Struts2.0下的客户端验证
  6. 浏览器缓存详解:expires,cache-control,last-modified,etag详细说明
  7. ubuntu多节点安装kubernetes
  8. thread local storage
  9. php漏洞论坛,PHPWind超级漏洞简单用
  10. 如何正确执行碎片整理或在群集共享卷(CSV)上使用CHKDSK命令
  11. vm中linux物理内存不足解决方案
  12. OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)
  13. 机器学习十大经典算法之逻辑回归
  14. vue 检测ie版本_Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案
  15. lonlifeOJ1152 “玲珑杯”ACM比赛 Round #19 概率DP
  16. 首都师范大学计算机科学与技术考研分数线,2017考研:计算机科学与技术专业考研院校推荐之首都师范...
  17. Leetcode431.将N叉树编码为二叉树(golang)
  18. Java的split()用法
  19. python-学生管理系统--2录入学生信息内容以及代码
  20. react前端封装接口弹出错误_react+ts打包发布后报Minified React error ..这种错误

热门文章

  1. 通过抓包看quic定义的包结构
  2. HDU 6446 Tree and Permutation (dp)
  3. 使用selenium时遇到的报错selenium.common.exceptions.WebDriverException: Message: Service xxxxstaus:1详解及解决方法详解
  4. 做一个简单的java编辑器
  5. 哈密尔顿算法matlab,[求助]关于哈密尔顿函数
  6. Java运行时报错,the selection cannot be launched,and there are no recent launches
  7. CSS选择器有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先?
  8. (JAVA编程练习):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。抽签名单已经决定,有人向队员打听比赛名单。a说他不和x比,c说他不和x,z比,编写程序找出比赛名单。
  9. Neovim开发Golang示例
  10. 从亿级数据量的url中找出出现次数最多的前十个url