Baru-baru ini Ubuntu mulai dikirimkan dengan netplan. Untuk itu diperlukan konfigurasi yaml untuk mengatur antarmuka jaringan. Jadi misalnya memerlukan yaml berikut untuk mengatur WiFi:
network:
version: 2
renderer: NetworkManager
wifis:
interface_name:
access-points:
"apn":
password: "pwd"
nameservers:
addresses: [8.8.4.4, 8.8.8.8]
dhcp4: true
Perhatikan pada titik akses, nama_ssid_jaringan (apn) dan nilai kolom kata sandi (pwd) diberi tanda kutip ganda.
Saya melihat sekeliling pada stack overflow dan menemukan ini
Namun solusi ini memerlukan instalasi modul dari pip call ruamel.yaml. Saya ingin mencapai ini menggunakan modul PyYAML yang sudah tersedia di distribusi python saya.
Berikut beberapa hal yang telah saya coba sejauh ini:
import yaml
d = {'network': {'version': 2, 'renderer': 'NetworkManager', 'wifis':{'wlp58s0': {'access-points': {b'apn': {'password': b'pwd'}}}}}}
with open('/home/edyza/result.yml', 'w') as yaml_file:
yaml.dump(d, yaml_file, default_flow_style=False, default_style=None)
Output dari ini adalah
network:
renderer: NetworkManager
version: 2
wifis:
wlp58s0:
access-points:
apn:
password: pwd
Sekarang saya mencoba menggunakan karakter escape dan beberapa hal lainnya
import yaml
d = {'network': {'version': 2, 'renderer': 'NetworkManager', 'wifis':{'wlp58s0': {'"access-points"': {'apn': {'password': "\"pwd\""}}}}}}
with open('/home/edyza/result.yml', 'w') as yaml_file:
yaml.dump(d, yaml_file, default_flow_style=False, default_style=None)
Kemudian outputnya berubah menjadi
network:
renderer: NetworkManager
version: 2
wifis:
wlp58s0:
'"access-points"':
apn:
password: '"pwd"'
Perubahan apa yang dapat saya lakukan untuk mencapai keluaran yang diinginkan dengan tanda kutip ganda pada kunci dan nilai yang sesuai tanpa menggunakan modul pihak ketiga?
Atau adakah pendekatan lain yang harus saya pertimbangkan untuk menghasilkan file yaml.
ruamel.yaml
, maupun PyYAML atau PySyck (keduanya hanya mendukung versi YAML yang sudah usang satu dekade atau lebih yang lalu). Harap berikan referensi (misalnya di repositori Python) tentang apa yang akan menjadi *modul yaml yang dikirimkan secara default dengan python`, sehingga kami tahu apa yang Anda maksud. - person Anthon   schedule 23.06.2019