使用Python将格式化的JSON写入文件

时间:2019-03-23 15:35:28

标签: python shell

我想使用Shell脚本将格式化(即缩进)的JSON配置文件写入远程计算机。

我的代码:

json_config = {
    "api-listen": true, 
    "api-network": true, 
    "multi-version": "1", 
    "pools": [
        {
            "pass": "123", 
            "url": "antpool.com:3333"
        }, 
        {
            "pass": "123", 
            "url": "antpool.com:443"
        }, 
        {
            "pass": "123", 
            "antpool.com:25"
        }
    ]
}

# format the new configuration
json_config_formatted = json.dumps(json.dumps(json_config), indent=4)

# write the new config
connection.sendShell('echo "{}" | cat > "/config/bmminer.conf"'.format(json_config_formatted))

但是,所有内容都写在一行上。如何保留字符串的格式?

1 个答案:

答案 0 :(得分:0)

首先,您要调用json.dumps两次,所以要制作一个本身包含JSON的JSON字符串。

第二,您应该使用Python而不是Shell编写文件。

json_config = {
    ...
}

# format the new configuration
with open("/config/bmminer.conf", "w") as conf:
    json.dump(json_config, conf, indent=4)

对于远程计算机,如何正确地在那里获取数据取决于您的磁带库。我不知道sendShell是什么。