Python-ValueError:应为值:第1行第1列(字符0)

2024-06-02 08:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

这会产生错误:

ValueError: Expecting value: line 1 column 1 (char 0)

这是我的代码:

...

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'):
        with open('phonebook.json', 'wb') as f:
            try:
                f.write('{}')
            except TypeError:
                {}
        created = True
        print('New phonebook created!')
    else:
        print('Phonebook found!')
        created = True

with open('phonebook.json', 'r') as f:
    try:
        phoneBook_Ori = json.load(f)
        phoneBook_Upd = dict(phoneBook_Ori.items() + phoneBook.items())
        phoneBook_Ori.write(phoneBook_Upd)
    except EOFError:
        {}
if EOFError:
    with open('phonebook.json', 'w') as f:
        json.dump(phoneBook, f)
else:
    with open('phonebook.json', 'w') as f:
        json.dump(phoneBook_Ori, f)

有人知道怎么解决这个问题吗?

我以前也问过一个关于这个代码的问题here


Tags: 代码namejsonnumberifaswithnot
2条回答

我在使用json.load(var)var时遇到此错误,后者包含来自REST API调用的空JSON响应。

在您的例子中,JSON响应(phonebook.json)必须有记录。这将修复错误。

我在Python2.x解释器中复制粘贴的代码。

我收到了一个关于phonebook.json文件的ValueError。我创建了一个虚拟文件:

{'sean':'310'}

我的错误是: 值错误:应为属性名:第1行第2列

这是我唯一能收到ValueError的方法。 因此,我认为您的问题在于json在phonebook.json中的编写方式。你能发布它的内容或子集吗?

另外,使用phoneBook_Ori.write()似乎很有问题,因为json模块没有名为write()的方法,如果在json对象上使用json.load()的返回,则它是一个字典,也不能write()。您可能想使用json.dump()

更多信息请访问: https://docs.python.org/2/library/json.html

不管怎样,我希望我能帮上忙。

相关问题 更多 >