Python-pickle.load()接受一个位置参数(给定2个)

Python-pickle.load()接受一个位置参数(给定2个),python,pickle,Python,Pickle,这会产生一个错误: pickle.load() takes one positional argument (2 given) 这是我的密码: import pickle, os.path created = False phoneBook = {} name = input("Please enter a name(or press enter to end input): ") while name != '': number = input("Please enter num

这会产生一个错误:

pickle.load() takes one positional argument (2 given)
这是我的密码:

import pickle, os.path

created = False

phoneBook = {}
name = input("Please enter a name(or press enter to end input): ")
while name != '':
    number = input("Please enter number: ")
    phoneBook[name] = number
    name = input("Please enter a name(or press enter to end input): ")
    if name == '':
        print("Thank You!")

print("Your phonebook contains the following entries:")
for name, number in phoneBook.items():
    print("%s - %s" % (name, number))

while not created:
    if not os.path.isfile('phonebook.json'):
        phoneBook_Ori = pickle.load('phonebook.json', 'r')
        created = True
    else:
        phoneBook_Ori = pickle.load('phonebook.json', 'w')
        phoneBook_Upd = phoneBook_Ori.update(phoneBook)
        phoneBook_Ori.write(phoneBook_Upd)

phoneBook_Ori.close
为什么不是酸洗数据?

这不是您使用的方式:

当从文件而不是字符串反序列化时,它将文件对象作为参数

请尝试以下方法:

# create file object with permissions
with open('phonebook.json', 'r') as f:
    # load using pickle de-serializer
    phoneBook_Ori = pickle.load(f)
保存几乎相同,请确保您在范围内有更新的电话簿:

with open('phonebook.json', 'wb') as f:
    phoneBook_Ori = pickle.dump(phonebook, f)
至于代码的其余部分,您可能希望阅读我给出的非常类似的内容。

这不是您使用的方式:

当从文件而不是字符串反序列化时,它将文件对象作为参数

请尝试以下方法:

# create file object with permissions
with open('phonebook.json', 'r') as f:
    # load using pickle de-serializer
    phoneBook_Ori = pickle.load(f)
保存几乎相同,请确保您在范围内有更新的电话簿:

with open('phonebook.json', 'wb') as f:
    phoneBook_Ori = pickle.dump(phonebook, f)
至于其余的代码,您可能希望阅读我给出的非常类似的代码。

请注意,pickle不创建JSON文件,因此您无法通过其他理解JSON的工具读取pickle文件。请注意,pickle不创建JSON文件,因此您无法通过其他理解JSON的工具读取pickle文件。