Python 难以确定numpy int64的类型

Python 难以确定numpy int64的类型,python,pandas,numpy,Python,Pandas,Numpy,问题 我很难识别numpy.int64对象,以便将它们转换为用于json序列化的基本python intisinstance通常有效,但在下面的示例中无效,我很想了解为什么会这样 >>> x 0 >>> type(x) <class 'numpy.int64'> >>> import numpy >>> isinstance(x, numpy.int64) False 但是如果有人能解释为什么第一个选项不起作用

问题

我很难识别
numpy.int64
对象,以便将它们转换为用于json序列化的基本python int
isinstance
通常有效,但在下面的示例中无效,我很想了解为什么会这样

>>> x
0
>>> type(x)
<class 'numpy.int64'>
>>> import numpy
>>> isinstance(x, numpy.int64)
False
但是如果有人能解释为什么第一个选项不起作用,我会非常感激,这样我就有足够的信心将其部署到我们的生产系统中。使用
simplejson
和使用
isinstance(obj,pd.np.int64)
的自定义
jsondeconder
类已经工作了几个月,但它突然停止了使用上面的示例


pickle.dumps(x)
gives
b'\x80\x03cnumpy.core.multiarray\nscalar\nq\x00cnumpy\ndtype\nq\x01X\x02\x00\x00\x00i8q\x02K\x00K\x01\x87q\x03Rq\x04(K\x03X\x01\x00\x00\x00\x00\x00)您的python设置是什么?(版本等…)我无法在anaconda python 3.6(windows 64位)上复制您尝试过
type(x)==np.int64
?为什么在导入numpy之前要有numpy类型?Python 3.4.3(默认值,2015年8月20日,14:15:05)[GCC 4.6.3]在linuxCheck
pd.np.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(即使是从相同的文件导入)。如果您通过自动重新加载模块(例如用于开发)的web框架运行此服务,它可能会意外地重新加载
numpy
模块,从而创建两种不同的
numpy.int64
类型。
>>> (isinstance(x, (pd.np.ndarray, pd.np.generic)) and 
>>> pd.np.issubdtype(x, pd.np.dtype('int64')))
True
>>> isinstance(pickle.loads(pickle.dumps(x)), pd.np.int64)
True