gpt4 book ai didi

查询MySQL时Python报错-- 'int'不支持buffer接口(interface)

转载 作者:行者123 更新时间:2023-11-29 03:06:35 24 4
gpt4 key购买 nike

这段代码昨天运行良好,作为 cron 作业运行。突然今天,它不是,我收到这个错误:

    Traceback (most recent call last):
File "C:/Users/ac33g1r1/Documents/BD_Scripts/test plist script.py", line 28, in <module>
[plist[sid], lastQ[0]] )
File "C:\Python33\pymysql\cursors.py", line 117, in execute
self.errorhandler(self, exc, value)
File "C:\Python33\pymysql\connections.py", line 187, in defaulterrorhandler
raise Error(errorclass, errorvalue)
pymysql.err.Error: (<class 'TypeError'>, TypeError("'int' does not support the buffer interface",))

我已经搜索过,但无法弄清楚为什么会突然发生变化。 Windows Server 2008 上的 Python 版本是 3.3.0。我真的很想让这个 cron 作业再次运行,但不知道真正的原因是什么。

代码如下:

import pymysql

conn = pymysql.connect(host='1.2.3.4', port = 1234, user = 'uname', passwd='pword', db='db_x')
cur = conn.cursor()

lastQ = [165]
plist = [3327, 2145, 3429, 3442, 2905, 3339, 2628, 1655, 1831, 3202, 2551, 2110]

###Debug statements
print("plist")
print(len(plist))
print ("\n")

print("last[Q]")
print(lastQ[0] )
print ("\n")
lastQ[0] = lastQ[0] + 1
print(lastQ[0] )

# Code that is throwing error

for sid in range(len(plist)):
lastQ[0] = lastQ[0] + 1
cur.execute("""INSERT INTO queuelist(itemID, sortID)
VALUES(%s,%s)""",
[plist[sid], lastQ[0]] )

cur.close()
conn.close()

最佳答案

我在 64 位 Windows 7 和 this workaround 上也遇到了类似的问题帮助过我。只需将 pymysql 的 connections.py 中的 unpack_int24、unpack_int32 和 unpack_int64 函数替换为

def unpack_int24(n):
try:
return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0] << 8) +\
(struct.unpack('B',n[2])[0] << 16)
except TypeError:
return n[0]+(n[1]<<8)+(n[2]<<16)

def unpack_int32(n):
try:
return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0] << 8) +\
(struct.unpack('B',n[2])[0] << 16) + (struct.unpack('B', n[3])[0] << 24)
except TypeError:
return n[0]+(n[1]<<8)+(n[2]<<16)+(n[3]<<24)

def unpack_int64(n):
try:
return struct.unpack('B',n[0])[0] + (struct.unpack('B', n[1])[0]<<8) +\
(struct.unpack('B',n[2])[0] << 16) + (struct.unpack('B',n[3])[0]<<24)+\
(struct.unpack('B',n[4])[0] << 32) + (struct.unpack('B',n[5])[0]<<40)+\
(struct.unpack('B',n[6])[0] << 48) + (struct.unpack('B',n[7])[0]<<56)
except TypeError:
return n[0]+(n[1]<<8)+(n[2]<<16)+(n[3]<<24) \
+(n[4]<<32)+(n[5]<<40)+(n[6]<<48)+(n[7]<<56)

关于查询MySQL时Python报错-- 'int'不支持buffer接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14201018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com