FileNotFoundError:[Errno 2] JSON文件

时间:2020-07-03 00:15:14

标签: python json jupyter-lab errno

背景-
我试图将一个JSON文件读取到Jupyter Lab中,随后我想将其写入一个csv文件。

问题-
我的代码应该进入目录级别,进入“ Resources”文件夹并读取“ restaurant.json”,但是,当我运行代码时,Jupyter Lab不断抛出问题-

错误-
FileNotFoundError:[错误2]没有这样的文件或目录:'../ Resources / restaurant.json'

代码-

import json
import csv
import os
filepath = os.path.join("..", "Resources", "restaurant.json")
with open(filepath) as jsonfile:
    json_data = json.load(jsonfile)

文件夹结构-
我的Jupyter Lab文件-/ Users / MyUserName / Documents / davis / Homework_Repos / ETL-project / working / .ipynb
我的JSON文件- /Users/MyUserName/Documents/davis/Homework_Repos/ETL-project/Resources/restaurant.json

我的想法-
我有另一个项目的代码设置相同,唯一的区别是JSON文件名,它可以完美读取文件。我唯一的怀疑是 restaurant.json 文件的大小为10MB,所以我想知道这是否会引起问题

任何建议都将不胜感激-也许我的代码需要更加隐含!

1 个答案:

答案 0 :(得分:0)

使用pathlib

  • 该模块提供了一些类,这些类使用适合不同操作系统的语义来表示文件系统路径。
  • 它是标准库的一部分,应替换os
  • Python 3's pathlib Module: Taming the File System
  • cwd作为WindowsPath('Users/MyUserName/Documents/davis/Homework_Repos/ETL-project/working')
    • cwd.parents[0]WindowsPath('Users/MyUserName/Documents/davis/Homework_Repos/ETL-project')
    • cwd.parents[1]WindowsPath('Users/MyUserName/Documents/davis/Homework_Repos')
from pathlib import Path
import json

cwd = Path.cwd()
file = cwd.parents[0] / 'Resources' / 'restaurant.json'

with file.open('r', encoding='utf-8') as f:
    data = json.load(f.read())