Python 从macOS切换到Windows后出现JSON解码错误

Python 从macOS切换到Windows后出现JSON解码错误,python,Python,我有一个Python文件,它在我的macbook上运行得非常好。 一旦我把它移到窗口,出于某种原因,它给了我新的错误 这是我得到的错误: Traceback (most recent call last): File "C:/Users/chadi/PycharmProjects/untitled4/main.py", line 3, in <module> from main_controller import Ui_MainController File "C:\

我有一个Python文件,它在我的macbook上运行得非常好。 一旦我把它移到窗口,出于某种原因,它给了我新的错误

这是我得到的错误:

Traceback (most recent call last):
  File "C:/Users/chadi/PycharmProjects/untitled4/main.py", line 3, in <module>
    from main_controller import Ui_MainController
  File "C:\Users\chadi\PycharmProjects\untitled4\main_controller.py", line 6, in <module>
    from get_companies import load_companies
  File "C:\Users\chadi\PycharmProjects\untitled4\get_companies.py", line 10, in <module>
    json_read('convertcsv.json')
  File "C:\Users\chadi\PycharmProjects\untitled4\get_companies.py", line 8, in json_read
    data = (json.load(f_in))
  File "C:\Users\chadi\anaconda3\envs\untitled4\lib\json\__init__.py", line 293, in load
    return loads(fp.read(),
  File "C:\Users\chadi\anaconda3\envs\untitled4\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\Users\chadi\anaconda3\envs\untitled4\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\chadi\anaconda3\envs\untitled4\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Process finished with exit code 1
我不知道它是从哪里来的,或者可能是我在Windows上使用的新环境?我用过蟒蛇。它改变了什么吗?我在我的macOS上玩VENV

感谢您对错误的帮助

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
可能只是意味着根本没有从目标文件读取数据,因此json找不到任何要解析的数据

您可以通过尝试将脚本中该点的文件读入字符串来进行故障排除-如果失败,问题可能出在python执行的当前目录/相对文件路径中,而不是json解析中

with open ("convertcsv.json", "r") as checkFile:
    checkData = checkFile.read()
    # print out length or contents of checkData or sim.

您试图解析的JSON是什么?请:使JSON_load返回数据,而不是使用全局变量:-@MarcelloRomani感谢您的建议,但我的项目需要全局加载。Load json应该是一个自包含函数,它将json文件作为输入并返回其内容。使用这样的全局变量是完全错误的。如果您确实需要,yoj可以在该函数之外分配全局变量。好的,我会研究它,但现在,我得到的错误是:'FileNotFoundError:[Errno 2]没有这样的文件或目录:'convertcsv.json',即使我可以在目录中实际看到该文件。我按照您的建议做了,得到了'FileNotFoundError:[Errno 2]没有这样的文件或目录:“convertcsv.json”,即使我可以在该目录中实际看到该文件?我认为这意味着python脚本运行的当前工作目录不是您认为的位置。使用os.getcwd打印脚本实际执行的位置,或者使用os.chdir进行更改,或者使用其他方法获取输入文件的完整路径。详情如下:
def json_read(filename):
    with open(filename) as f_in:
        global data
        data = (json.load(f_in))

def get_employee_info(n_inspecteur):
    json_read('info_inspecteurs.json')
    value = list(filter(lambda x: x["n_inspecteur"] == n_inspecteur, data))[0]
    if len(value) > 0:
        print(value['ad_inspecteur'], "\n", value['email_inspecteur'])
        return (value['ad_inspecteur'],value['email_inspecteur'])
    print("no record found")
    return None

def load_employees_from_info_inspecteurs():
    json_read('info_inspecteurs.json')
    employees=[]
    for company in data:
        employees.append(company['n_inspecteur'])
    return employees

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
with open ("convertcsv.json", "r") as checkFile:
    checkData = checkFile.read()
    # print out length or contents of checkData or sim.