Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解码NumPy int64二进制表示_Python_Sqlite_Numpy_Sqlalchemy - Fatal编程技术网

Python 解码NumPy int64二进制表示

Python 解码NumPy int64二进制表示,python,sqlite,numpy,sqlalchemy,Python,Sqlite,Numpy,Sqlalchemy,所以我做了一件愚蠢的事情,忘记了显式地将我放入SQLite数据库的一些值进行类型转换(使用Python的SQLalchemy)。该列被设置为存储INT,而输入实际上是numpy.int64dtype 我从数据库中获取的值如下所示: b'\x15\x00\x00\x00\x00\x00\x00\x00\x00' SQLite似乎已经为这些值存储了二进制表示,而不是整数本身 有没有办法在Python中解码这些值,或者我必须重新加载所有数据(目前不是一个简单的练习)?您可以使用: 我想在这种情况下,l

所以我做了一件愚蠢的事情,忘记了显式地将我放入SQLite数据库的一些值进行类型转换(使用Python的SQLalchemy)。该列被设置为存储
INT
,而输入实际上是
numpy.int64
dtype

我从数据库中获取的值如下所示:

b'\x15\x00\x00\x00\x00\x00\x00\x00\x00'

SQLite似乎已经为这些值存储了二进制表示,而不是整数本身

有没有办法在Python中解码这些值,或者我必须重新加载所有数据(目前不是一个简单的练习)?

您可以使用:

我想在这种情况下,little endian更可能是正确的


另外,我刚刚确认,当将
numpy.int64
插入SQLite
int
字段时,可以使用
struct.unpack()
检索该字段,如上所示。

谢谢,这很有用。数据确实是小端的。
>>> import struct
>>> value = struct.unpack('<q', b'\x15\x00\x00\x00\x00\x00\x00\x00')
>>> value
(21,)
>>> value[0]
21
>>> struct.unpack('>q', b'\x15\x00\x00\x00\x00\x00\x00\x00')
(1513209474796486656,)