【问题标题】:json.dump - FileNotFoundErrorjson.dump - FileNotFoundError
【发布时间】:2019-11-04 21:23:10
【问题描述】:

我会这样做:

import json

data = { "id": 1 }

with open('~/Desktop/data.json', 'w') as f:
  json.dump(data, f)

但我收到此错误:

FileNotFoundError: [Errno 2] No such file or directory: '...Desktop/data.json'

确实,我没有事先在Desktop 中创建data.json 文件,但我认为这是我上面的代码应该做的。

我该怎么做?

【问题讨论】:

  • ~ 实际上并不是您要使用的路径名中的字符。 Shell 将其解释为对您的主目录的引用,但 Shell 并未处理此代码。您可以使用os.path.expanduser() 在 Python 中获得相同的解释。

标签: python json


【解决方案1】:

Python 无法处理文件路径中的~,因为~bash feature。您可以使用os 模块获取您的主目录路径:

import os 

print(os.getenv('HOME'))

【讨论】:

    【解决方案2】:

    添加到以前的答案: 如果文件不存在,你可以使用“w+”让python创建一个文件。

    【讨论】:

      【解决方案3】:

      就像@jasonharper 提到的那样:

      import json
      data = { "id": 1 }
      with open(os.path.expanduser("~")+'/Desktop/data.json', 'w') as f:
        json.dump(data, f)
      

      【讨论】:

        猜你喜欢
        • 2014-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-12
        • 2021-08-28
        • 1970-01-01
        • 2020-11-16
        • 2021-01-07
        相关资源
        最近更新 更多