我如何在python Json中停止此解码错误 - python

我正在用python json练习,我制作了一个函数来打开文件,并加载存储在该文件中的数字,但是如果该文件不存在,它将排除错误,并要求输入喜欢的数字,然后将该数字转储到文件中,然后加载。但我不断出错

import json

def get_num():
    filename = 'numberssfresdfs.json'
    try:
        with open(filename) as num:
            number = json.load(num)
    except FileNotFoundError:
        favorite_num = input("Please enter your favorite number ")
        with open(filename, 'w') as num:
            json.dump(favorite_num, num)
            print("Your favorite number is " )
    else:
        print("I know your favorite number, its " + str(number))

get_num()

我不断收到这个错误

Traceback (most recent call last):
File "remember_favorite_num.py", line 16, in <module>
  get_num()
File "remember_favorite_num.py", line 7, in get_num
  number = json.load(num)
File "C:\Users\kenda\AppData\Local\Programs\Python\Python36- 
  32\lib\json\__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Users\kenda\AppData\Local\Programs\Python\Python36- 
  32\lib\json\__init__.py", line 354, in loads
  return _default_decoder.decode(s)
File "C:\Users\kenda\AppData\Local\Programs\Python\Python36- 
  32\lib\json\decoder.py", line 339, in decode
  obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\kenda\AppData\Local\Programs\Python\Python36- 
  32\lib\json\decoder.py", line 357, in raw_decode
  raise JSONDecodeError("Expecting value", s, err.value) from None
  json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

参考方案

您永远不会到达您的except块中的代码,因为numberssfresdfs.json确实存在。

您收到json.load错误消息,因为numberssfresdfs.json不包含有效的json或为空。

您可以使用json linter(one online linter)来验证您的文件包含有效的json。

一旦确认使用有效的json,就可以完成其余的逻辑。

JSON SCHEMA PATTERN逗号分隔列表 - python

我的json模式中具有以下模式,并且我需要根据以下模式包含逗号分隔的值。当前模式只能像DV2一样处理一种模式所以我应该如何修改我的模式以包括多个字符串,如下所示,但它应该与声明的模式匹配。例如:“ DV2”,“ DEV1”,“ DEV3”,“ ST”, "ENVIRONMENT": { "type": "st…

如何在python中将从PDF提取的文本格式化为json - python

我已经使用pyPDF2提取了一些文本格式的发票PDF。我想将此文本文件转换为仅包含重要关键字和令牌的json文件。输出应该是这样的:#PurchaseOrder {"doctype":"PO", "orderingcompany":"Demo Company", "su…

Python中的Json操作 - python

Latest_json和Historic_json函数返回:return(frame.to_json(orient='records')) 主功能:recentdata = recent_json(station) historicdata = historic_json(station) alldata = historicdata +…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python Pandas导出数据 - python

我正在使用python pandas处理一些数据。我已使用以下代码将数据导出到excel文件。writer = pd.ExcelWriter('Data.xlsx'); wrong_data.to_excel(writer,"Names which are wrong", index = False); writer.…