Как написать файл yml с помощью пакета python pyml?

#python #python-3.x #pyml

Вопрос:

я хочу создать файл yml с помощью словаря python как создать формат словаря, который я могу получить ниже файла формата yml

 responses:
  utter_greet:
  - text: Hey! How are you?
    buttons:
    - title: "good"
      payload: "/greet"
    - title: "bad"
      payload: "/health"

 

Ответ №1:

Вы можете использовать этот пакет для преобразования в dict
https://github.com/Infinidat/munch

 pip3 install munch
 

преобразовать в дикт

 import yaml
from munch import Munch
mydict = yaml.safe_load("""
responses:
  utter_greet:
  - text: Hey! How are you?
    buttons:
    - title: "good"
      payload: "/greet"
    - title: "bad"
      payload: "/health"
""")
print(mydict)
 

преобразование dict в yaml

 with open('output.yml', 'w') as yaml_file:
    yaml.dump(mydict, yaml_file, default_flow_style=False)
 

Ответ №2:

Как получить этот шаблон yml с помощью python:

Он должен генерировать UUID файл для файла, и сгенерированный файл должен иметь это yml template :

 import uuid
print(uuid.uuid1())
u = str(uuid.uuid1())
u
open(u ".yml", "a ")
 

Формат шаблона YML:

 - id: 7049e3ec-b822-4fdf-a4ac-18190f9b66d1
  name: Powerkatz (Staged)
  description: Use Invoke-Mimikatz
  tactic: credential-access
  technique:
    attack_id: T1003.001
    name: "OS Credential Dumping: LSASS Memory"
  privilege: Elevated
  platforms:
    windows:
      psh:
        command: |
          Import-Module .invoke-mimi.ps1;
          Invoke-Mimikatz -DumpCreds
        parsers:
          plugins.stockpile.app.parsers.katz:
          - source: domain.user.name
            edge: has_password
            target: domain.user.password
          - source: domain.user.name
            edge: has_hash
            target: domain.user.ntlm
          - source: domain.user.name
            edge: has_hash
            target: domain.user.sha1
        payloads:
        - invoke-mimi.ps1