Python 从字典中写一个 JSON 临时文件
Python Write a JSON temporary file from a dictionary
我正在做一个 python(3.6) 项目,我需要从 Python 字典中编写一个 JSON 文件。
这是我的词典:
{'deployment_name': 'sec_deployment', 'credentials': {'type': 'type1', 'project_id': 'id_001',}, 'project_name': 'Brain', 'project_id': 'brain-183103', 'cluster_name': 'numpy', 'zone_region': 'europe-west1-d', 'services': 'Single', 'configuration': '', 'routing': ''}
我需要将 credentials
密钥写入 JSON 文件。
这是我尝试过的方法:
tempdir = tempfile.mkdtemp()
saved_umask = os.umask(0o077)
path = os.path.join(tempdir)
cred_data = data['credentials']
with open(path + '/cred.json', 'a') as cred:
cred.write(cred_data)
credentials = prepare_credentials(path + '/cred.json')
print(credentials)
os.umask(saved_umask)
shutil.rmtree(tempdir)
不是写JSON格式的文件,生成的文件如下:
{
'type': 'type1',
'project_id': 'id_001',
}
它带有单引号而不是双引号。
使用json
模块
例如:
import json
with open(path + '/cred.json', 'a') as cred:
json.dump(cred_data, cred)
其实这个应该是用more Python 3 native method.
import json,tempfile
config = {"A":[1,2], "B":"Super"}
tfile = tempfile.NamedTemporaryFile(mode="w+")
json.dump(config, tfile)
tfile.flush()
print(tfile.name)
分解:
- 我们加载
tempfile
,并确保有一个名称带有NamedTemporaryFile
- 我们将字典转储为
json
文件
- 我们确保它已通过
flush()
写入
- 终于可以抓取名字一探究竟了
请注意,我们可以在调用 NamedTemporaryFile
时使用 delete=False
将文件保存更长时间
我正在做一个 python(3.6) 项目,我需要从 Python 字典中编写一个 JSON 文件。
这是我的词典:
{'deployment_name': 'sec_deployment', 'credentials': {'type': 'type1', 'project_id': 'id_001',}, 'project_name': 'Brain', 'project_id': 'brain-183103', 'cluster_name': 'numpy', 'zone_region': 'europe-west1-d', 'services': 'Single', 'configuration': '', 'routing': ''}
我需要将 credentials
密钥写入 JSON 文件。
这是我尝试过的方法:
tempdir = tempfile.mkdtemp()
saved_umask = os.umask(0o077)
path = os.path.join(tempdir)
cred_data = data['credentials']
with open(path + '/cred.json', 'a') as cred:
cred.write(cred_data)
credentials = prepare_credentials(path + '/cred.json')
print(credentials)
os.umask(saved_umask)
shutil.rmtree(tempdir)
不是写JSON格式的文件,生成的文件如下:
{
'type': 'type1',
'project_id': 'id_001',
}
它带有单引号而不是双引号。
使用json
模块
例如:
import json
with open(path + '/cred.json', 'a') as cred:
json.dump(cred_data, cred)
其实这个应该是用more Python 3 native method.
import json,tempfile
config = {"A":[1,2], "B":"Super"}
tfile = tempfile.NamedTemporaryFile(mode="w+")
json.dump(config, tfile)
tfile.flush()
print(tfile.name)
分解:
- 我们加载
tempfile
,并确保有一个名称带有NamedTemporaryFile
- 我们将字典转储为
json
文件 - 我们确保它已通过
flush()
写入
- 终于可以抓取名字一探究竟了
请注意,我们可以在调用 NamedTemporaryFile
delete=False
将文件保存更长时间