Python 2 - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“列表”

Posted

技术标签:

【中文标题】Python 2 - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“列表”【英文标题】:Python 2 - TypeError: int() argument must be a string, a bytes-like object or a number, not 'list' 【发布时间】:2017-02-02 02:23:36 【问题描述】:

如何解决此错误?当我尝试用泡菜加载我的保存时,它给了我这个

Traceback (most recent call last):
  File "C:\Users\user\Downloads\game.py", line 315, in <module>
    menu()
  File "C:\Users\user\Downloads\game.py", line 261, in menu
    if (0) > int(hunger) or (0) > int(thirst):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

这就是我加载/保存的方式

with open('objs.pickle', "rb") as f:  
    money = pickle.load(f)
    hunger = pickle.load(f)
    thirst = pickle.load(f)
    energy = pickle.load(f)
    wanted = pickle.load(f)
    gun = pickle.load(f)


with open('objs.pickle', 'ab') as f:  
    pickle.dump([money, hunger, thirst, energy, gun, wanted], f)

【问题讨论】:

总是将 FULL 错误信息放在 QUESTION 中。还有其他有用的信息。 我在那里编辑过 使用print(hunger, thirst) 看看你在这个变量中有什么。 [1000.0] [1000.0, 10, 10, 10, 0, 0] data = pickle.load(f), hunger = data[1], thirst = data[2] 【参考方案1】:

首先使用'wb' 而不是'ab' 只有最后一个值

以后你可以使用

with open('objs.pickle', "rb") as f:  
    money = pickle.load(f)
    hunger = pickle.load(f)
    thirst = pickle.load(f)
    energy = pickle.load(f)
    gun = pickle.load(f)
    wanted = pickle.load(f)


with open('objs.pickle', 'wb') as f:  
    pickle.dump(money, f)
    pickle.dump(hunger, f)
    pickle.dump(thirst, f)
    pickle.dump(energy, f)
    pickle.dump(gun, f)
    pickle.dump(wanted, f)

with open('objs.pickle', "rb") as f:  
    money, hunger, thirst, energy, gun, wanted = pickle.load(f)

with open('objs.pickle', 'wb') as f:  
    pickle.dump([money, hunger, thirst, energy, gun, wanted], f)

【讨论】:

以上是关于Python 2 - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“列表”的主要内容,如果未能解决你的问题,请参考以下文章

Python 2 - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“列表”

TypeError:'int'对象不支持项目分配Python

Python - TypeError:'int'对象不可迭代

TypeError:'int'对象不可迭代,使用 Python 3 [关闭]

(Python 新手)不断收到“TypeError: 'int' object is not callable”

Python Crawling-TypeError:'int'对象不可迭代