Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python json.dump-FileNotFoundError_Python_Json - Fatal编程技术网

Python json.dump-FileNotFoundError

Python json.dump-FileNotFoundError,python,json,Python,Json,我是这样做的: 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' 事实上,我没有事先在桌面中创建data.json文件,但我认为这就是我上面的代码应该做的 我如何才能做到

我是这样做的:

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'
事实上,我没有事先在
桌面
中创建
data.json
文件,但我认为这就是我上面的代码应该做的


我如何才能做到这一点?

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

import os 

print(os.getenv('HOME'))

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

import os 

print(os.getenv('HOME'))

就像@jasonharper提到的:

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

就像@jasonharper提到的:

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

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

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

~
实际上不是您要使用的路径名的一部分。shell将其解释为对主目录的引用,但是shell没有处理此代码。可以使用
os.path.expanduser()
在Python中获得相同的解释。
~
实际上不是要使用的路径名的一部分。shell将其解释为对主目录的引用,但是shell没有处理此代码。您可以使用
os.path.expanduser()
在Python中获得相同的解释。