将字典转换并写入 YAML 格式
Converting and writing a dictionary to YAML format
我正在从数据库中检索每个 table 中所有列的名称,并创建一个字典,其中 table 名称是键,值是 table 中的列名称列表=26=].
my_dict = {
'table_1': ['col_1', 'col_2', 'col_3', 'col_4']
}
我正在尝试将上述字典转换并写入 .yml
文件中的 YAML 格式
我希望 YAML 文件中的输出如下:
tables:
- name: table_1
columns:
- name: col_1
- name: col_2
- name: col_3
- name: col_4
我的尝试:
import yaml
import ruamel.yaml as yml
def to_yaml():
my_dict = {
'table_1' : ['col_1', 'col_2', 'col_3', 'col_4']
}
my_file_path = "/Users/Desktop/python/tables_file"
with open(f"{my_file_path}/structure.yml", "w") as file:
yaml.dump(yaml.load(my_dict), default_flow_style=False)
if __name__ == '__main__'
to_yaml()
以上代码没有给出预期的输出。我还根据一些与 YAML 相关的 Stack Overflow 帖子尝试了不同的方法,但无法正常工作。
使用:
import yaml
import ruamel.yaml
def to_yaml():
my_dict = {
'table_1' : ['col_1', 'col_2', 'col_3', 'col_4']
}
my_file_path = "/Users/Desktop/python/tables_file"
with open(f"{my_file_path}/structure.yml", "w") as file:
# yaml.dump need a dict and a file handler as parameter
yaml = ruamel.yaml.YAML()
yaml.indent(sequence=4, offset=2)
yaml.dump(my_dict, file)
if __name__ == '__main__':
to_yaml()
structure.yml
的内容:
table_1:
- col_1
- col_2
- col_3
- col_4
如果您想要预期的输出,您需要更改字典的结构。这里没有什么神奇的东西。
我正在从数据库中检索每个 table 中所有列的名称,并创建一个字典,其中 table 名称是键,值是 table 中的列名称列表=26=].
my_dict = {
'table_1': ['col_1', 'col_2', 'col_3', 'col_4']
}
我正在尝试将上述字典转换并写入 .yml
文件中的 YAML 格式
我希望 YAML 文件中的输出如下:
tables:
- name: table_1
columns:
- name: col_1
- name: col_2
- name: col_3
- name: col_4
我的尝试:
import yaml
import ruamel.yaml as yml
def to_yaml():
my_dict = {
'table_1' : ['col_1', 'col_2', 'col_3', 'col_4']
}
my_file_path = "/Users/Desktop/python/tables_file"
with open(f"{my_file_path}/structure.yml", "w") as file:
yaml.dump(yaml.load(my_dict), default_flow_style=False)
if __name__ == '__main__'
to_yaml()
以上代码没有给出预期的输出。我还根据一些与 YAML 相关的 Stack Overflow 帖子尝试了不同的方法,但无法正常工作。
使用:
import yaml
import ruamel.yaml
def to_yaml():
my_dict = {
'table_1' : ['col_1', 'col_2', 'col_3', 'col_4']
}
my_file_path = "/Users/Desktop/python/tables_file"
with open(f"{my_file_path}/structure.yml", "w") as file:
# yaml.dump need a dict and a file handler as parameter
yaml = ruamel.yaml.YAML()
yaml.indent(sequence=4, offset=2)
yaml.dump(my_dict, file)
if __name__ == '__main__':
to_yaml()
structure.yml
的内容:
table_1:
- col_1
- col_2
- col_3
- col_4
如果您想要预期的输出,您需要更改字典的结构。这里没有什么神奇的东西。