with open('discord-gitlab.msgpack', 'rb') as database:
try:
print("Получены данные из файла БД:" + str(msgpack.unpackb(database.read())))
discord_gitlab = msgpack.unpackb(database.read())
finally:
discord_gitlab = dict()
print(msgpack.unpackb(database.read()))
说了一些"不完整的输入";而在open()
中没有这种模式。
尝试使用close()
,有和没有with … as …:
print("Получены данные из файла БД:" + str(msgpack.unpackb(database.read())))
discord_gitlab = msgpack.unpackb(database.read())
第一行调用database.read()
,它读取所有数据。
然后第二行再次调用database.read()
,但是没有什么可读的,所以read()
返回一个空字符串。
因此msgpack.unpackb()
接收到一个空字符串,这可能是错误的原因。
您可以通过只调用一次.read()
并将结果保存在一个变量中来解决这个问题,如下所示:
data = database.read()
print("Получены данные из файла БД:" + str(msgpack.unpackb(data)))
discord_gitlab = msgpack.unpackb(data)