python - 通过使用 python 从 yaml 文件中读取数据来创建 sql 文件
问题描述
我是 python 新手。我有 yaml 文件(config.yaml),其中包含如下数据。
Config:
- name: identity
value: 101
- name: size
value: 201
- name: logloc
value: /tmp/log
- name: host
value: xyz.dev.cloud
我正在寻找 python 脚本来读取上面的 yaml 文件并为每个名称和值创建带有更新语句的 sql 文件,如下所示。
UPDATE SAMPLE SET PVALUE=<value> WHERE PNAME=<name>
提前致谢。
解决方案
我相信这会做你想做的事:
import yaml
with open('/tmp/config.yaml') as f:
data = yaml.load(f, Loader=yaml.SafeLoader)
template = "UPDATE SAMPLE SET PVALUE={} WHERE PNAME={}"
statements = [template.format(nv['value'], nv['name']) for nv in data['Config']]
with open("/tmp/update_samples.sql", 'w') as f:
for statement in statements:
f.write(statement + '\n')
内容/tmp/update_samples.sql
:
UPDATE SAMPLE SET PVALUE=101 WHERE PNAME=identity
UPDATE SAMPLE SET PVALUE=201 WHERE PNAME=size
UPDATE SAMPLE SET PVALUE=/tmp/log WHERE PNAME=logloc
UPDATE SAMPLE SET PVALUE=xyz.dev.cloud WHERE PNAME=host
推荐阅读
- bash - Unix shell - Find unique columns by comparing two files
- python - SQL Server 代理不会从 python 中捕获 stderr/stdout
- r - 将特殊字符粘贴到 R 中的函数参数
- python - cnn IndexError:目标 2 超出范围
- shell - 在字符开始之前和等于(=)符号之前删除空格并使用 shell
- r - 如何在 R 中每隔一行添加一个字符串?
- java - 控制器 SpringBoot Java 的单元测试
- java - Spring security - 启用 HTTPS - 客户端未经授权获得 403
- android - 需要在后按的android上打开家庭活动
- swift - 使用自定义 segue swift 使用图像移动背景过渡