Python 从macOS切换到Windows后出现JSON解码错误
我有一个Python文件,它在我的macbook上运行得非常好。 一旦我把它移到窗口,出于某种原因,它给了我新的错误 这是我得到的错误: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:\
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.