рдпрдорд▓ рдЬрд╝реЗрди рдХреЗ 10 рдХрджрдо

рд╣рдо рд╕рднреА рдХреЛ рдЕрдиреНрд╕рд┐рдмрд▓ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрд╕рд┐рдмрд▓ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ: рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА, рдкреИрд░рд╛рдореАрдЯрд░-рд╡реИрд▓реНрдпреВ рдкреЗрдпрд░, INI рдлрд╛рдЗрд▓реЗрдВ, YAML, JSON, XML рдФрд░ рдХрдИ рдЕрдиреНрдпред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдЗрди рд╕рднреА рдореЗрдВ, YAML рдХреЛ рдЕрдХреНрд╕рд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдХреА рддрд╛рдЬрд╝рд╛ рдиреНрдпреВрдирддрд╛рд╡рд╛рдж рдФрд░ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, YAML рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕рдХреЗ рдкрд╛рдпрдерди-рдЬреИрд╕реЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдпрджрд┐ YAML рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдЪрд╛рд╣рд┐рдП! - рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрддрд░ рддрдХ рдЕрдкрдиреА рдЬрд▓рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ YAML рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 10 рдХрджрдо рдЙрдард╛рдПрдВред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдорд╛рд░реЗ рджрд╕ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЧрд┐рдирд╛ рдЬрд╛рдПрдЧрд╛, рд╣рдо рдзреНрдпрд╛рди рдФрд░ рдЖрдзреНрдпрд╛рддреНрдорд┐рдХ рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ; & nbsp;

0. рдЕрдкрдирд╛ рд╕рдВрдкрд╛рджрдХ рдХрд╛рдо рдХрд░реЗрдВ


рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рд╣реИ - рдЙрд╕рдХреЗ рд▓рд┐рдП, рдпреБрдХрдорд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рддреБрд░рдВрдд рдвреВрдВрдвреЗрдВ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╣рд░ рдмрд╛рд░ рдЖрдкрдХреЛ YAML рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдЦреЛрдЬ рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рдЪреБрдХрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдЯрдо рд╕рдВрдкрд╛рджрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ YAML рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди GNU Emacs рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, yaml-mode ред



YAML рдореЛрдб рдореЗрдВ рдПрдордПрд╕реАрдПрд╕ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ YAML рдореЛрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, GNOME рдХреЗ тАЛтАЛрд▓рд┐рдП рдорд╛рдирдХ Gedit рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ YAML рдореЛрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ YAML рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдЪреВрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:



Gedit рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

рдФрд░ Gedit рдХреЗ рд▓рд┐рдП рдбреНрд░реЙрд╕реНрдкреЗрд╕ рдкреНрд▓рдЧрдЗрди рдбреЙрдЯреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓реЗрдВред рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдХрд┐ рд╡рд╣ рдпрд╛ рдЙрд╕рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╕рдореБрджрд╛рдп YAML рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкреЗрд╢рдХрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдкрдЫрддрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

1. рдПрдХ рд▓рд╛рдЗрдирд░ (рд▓рд┐рдВрдЯрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдПрдВ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдХрдВрдкреНрдпреВрдЯрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП 1978 рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд┐рдВрдЯрд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рджрд┐рдЦрд╛рдИ рджреА ред рдпрджрд┐ рдЗрд╕рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ 40 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдЕрднреА рднреА YAML-linter рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ yllllint рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдЖрдк рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛рдореНрд▓рд┐рдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Red Hat Enterprise Linux 8 рдпрд╛ Fedora рдкрд░, рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

$ sudo dnf install yamllint 

рддреЛ рдЖрдк рдмрд╕ yamllint рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП YAML рдлрд╝рд╛рдЗрд▓ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд▓рд┐рдВрдЯрд░ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

 $ yamllint errorprone.yaml errorprone.yaml 23:10 error syntax error: mapping values are not allowed here 23:11 error trailing spaces (trailing-spaces) 

рдмрд╛рдИрдВ рдУрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ: рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рд╕рдВрдЦреНрдпрд╛ред рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдг рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рд╣реИред рдХреЛрдб рдореЗрдВ рдЗрд╕ рдЬрдЧрд╣ рдХреЛ рджреЗрдЦреЗрдВ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЬрдм рдпрд╛рдореНрд▓рд┐рдВрдЯ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИрдВ, рддреЛ рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдРрд╕реА рдЪреБрдкреНрдкреА рд╕реЗ рдбрд░рддреЗ рд╣реИрдВ рдФрд░ рдереЛрдбрд╝реА рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд▓рд╛рдЗрдирд░ рдХреЛ рдбрдмрд▓ рдПрдореНрдкрд░рд╕реЗрдВрдб (&&) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╢рд░реНрдд рдЗрдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

 $ yamllint perfect.yaml && echo "OK" OK 

POSIX рдореЗрдВ, рдПрдХ рдбрдмрд▓ рдПрдореНрдкрд░рд╕реЗрдВрдб рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдкрд┐рдЫрд▓рд╛ рдХрдорд╛рдВрдб рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ 0. рдФрд░ рдпрд╛рдореНрд▓рд┐рдВрдЯ рдмрд╕ рдорд┐рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрдкреВрд░реНрдг рд╕рд╢рд░реНрдд рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

2. рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рди рдХрд┐ YAML


рдпрджрд┐ YAML рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЙрд╕ рдкрд░ рдордд рд▓рд┐рдЦрд┐рдПред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ YAML рдПрдХрдорд╛рддреНрд░ рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ YAML рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдЬреЛ рдкрд╕рдВрдж рд╣реИ, рдЙрд╕ рдкрд░ рд▓рд┐рдЦреЗрдВ рдФрд░ рдлрд┐рд░ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдкрд╛рдЗрдЕрдорд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рджреЛ рд╕рдВрдкреВрд░реНрдг рд░реВрдкрд╛рдВрддрд░рдг рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ: рд╕реНрд╡-рд░реВрдкрд╛рдВрддрд░рдг рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЖрдзрд╛рд░рд┐рдд рд░реВрдкрд╛рдВрддрд░рдгред

Samokonvertirovanie


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рднреА рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ YAML рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЫреЛрдЯреЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЖрдк рдХреЗрд╡рд▓ JSON рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЖрдпрд╛рдд рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рддреАрди рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

 #!/usr/bin/python3 import yaml d={ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } } f=open('output.yaml','w') f.write(yaml.dump(d)) f.close 

рдЕрдм рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ output.yaml рд╣реИ:

 $ python3 ./example.json $ cat output.yaml glossary: GlossDiv: GlossList: GlossEntry: Abbrev: ISO 8879:1986 Acronym: SGML GlossDef: GlossSeeAlso: [GML, XML] para: A meta-markup language, used to create markup languages such as DocBook. GlossSee: markup GlossTerm: Standard Generalized Markup Language ID: SGML SortAs: SGML title: S title: example glossary 

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИ YAML, рд▓реЗрдХрд┐рди yamllint рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧрд╛ рдХрд┐ рдпрд╣ --- рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЦреИрд░, рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдкрд╛рдпрдерди-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ JSON рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХрдирд╡рд░реНрдЯрд░ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ YAML рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдпрд╣ рддрд░реАрдХрд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, JSON рдлрд╝рд╛рдЗрд▓ example.json рдмрдирд╛рдПрдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ json.org рдкрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:

 { "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML", "GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML", "Abbrev": "ISO 8879:1986", "GlossDef": { "para": "A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML", "XML"] }, "GlossSee": "markup" } } } } } 

рдлрд┐рд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреНрд╡рд░реНрдЯрд░ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ json2yaml.py рдирд╛рдо рд╕реЗ рд╕реЗрд╡ рдХрд░реЗрдВред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рдореЙрдбреНрдпреВрд▓ - YAML рдФрд░ JSON рдкрд╛рдпрдерди рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ JSON рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рднреА рдХрд░рддреА рд╣реИ, рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреА рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреА рд╣реИ редyaml рдлрд╝рд╛рдЗрд▓ред

 #!/usr/bin/python3 import yaml import sys import json OUT=open('output.yaml','w') IN=open(sys.argv[1], 'r') JSON = json.load(IN) IN.close() yaml.dump(JSON, OUT) OUT.close() 

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдкрде рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЪрд▓рд╛рдПрдБ:

 $ ~/bin/json2yaml.py example.json 

3. рдмрд╣реБрдд рдмрд╛рд░ рдФрд░ рдЕрдХреНрд╕рд░


рдХрднреА-рдХрднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХреЛрдг рд╕реЗ рджреЗрдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ YAML рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХреБрдЫ рдФрд░ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╢рдмреНрджрдХреЛрд╢ рд╕реВрдЪрд┐рдпреЛрдВ рдпрд╛ JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рд╣реИрдВ, рддреЛ YAML рдХреЛ Python рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдореЗрдВ рд╕рд┐рд░реНрдл рджреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде JSON рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ YAML рдлрд╝рд╛рдЗрд▓ mydata.yaml рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

 $ python3 >>> f=open('mydata.yaml','r') >>> yaml.load(f) {'document': 34843, 'date': datetime.date(2019, 5, 23), 'bill-to': {'given': 'Seth', 'family': 'Kenlon', 'address': {'street': '51b Mornington Road\n', 'city': 'Brooklyn', 'state': 'Wellington', 'postal': 6021, 'country': 'NZ'}}, 'words': 938, 'comments': 'Good article. Could be better.'} 

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдСрдирд▓рд╛рдЗрди рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдкрд╛рд░реНрд╕рд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрд╢ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред

4. рдЪрд╢реНрдорд╛ рдкрдврд╝реЗрдВ


рд▓рдВрдмреЗ рдмреНрд░реЗрдХ рдХреЗ рдмрд╛рдж YAML рдореЗрдВ рд▓реМрдЯрдирд╛ , рдпрд╣ yaml.org рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рдРрдирдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ YAML рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд╣рд╛рде рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╢реНрдорд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рд╣реИрдВ, рдФрд░ рдЕрдзреНрдпрд╛рдп 6 рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдЪрд┐рддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

5. рдЫрджреНрдо рдирд╛рд░рд┐рдпрд▓


рдкреБрд╕реНрддрдХ рдпрд╛ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдпреЛрдЬрдирд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВред рддреЛ рдпрд╣ YAML рдХреЗ рд╕рд╛рде рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ YAML рдлрд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред рдЗрд╕рд▓рд┐рдП, YAML рдХреЛ рдореВрд░реНрддрд┐рдХрд▓рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдЫрджреНрдо рд╡рд┐рдиреНрдпрд╛рд╕ рдмрдирд╛рдПрдВред

рдЫрджреНрдо-рд╡рд┐рдиреНрдпрд╛рд╕ рдЫрджреНрдо рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдпрд╛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди, рдорд╛рддрд╛-рдкрд┐рддрд╛-рдмрдЪреНрдЪреЗ рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ, рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рддреЛ рдпрд╣ рдпрд╣рд╛рдБ рд╣реИ: рдЖрдк рдбреЗрдЯрд╛ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрдкрдХреЗ рд╕рд┐рд░ рдореЗрдВ рдЙрдарддреЗ рд╣реИрдВред



рдПрдХ рдЫрджреНрдо-рд╡рд┐рдиреНрдпрд╛рд╕ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ (рдорд╛рд░реНрдЯрд┐рди рдФрд░ рддрдмрд┐рддрд╛) рдФрд░ рдЙрдирдХреЗ рдХреМрд╢рд▓ (рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ: рдкрд╛рдпрдерди, рдкрд░реНрд▓, рдкрд╛рд╕реНрдХрд▓ рдФрд░ рд▓рд┐рд╕реНрдк, рдлреЛрд░рдЯреНрд░рд╛рди, рдПрд░рд▓реИрдВрдЧ, рдХреНрд░рдорд╢рдГ)ред

рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдПрдХ рдЫрджреНрдо-рд╡рд┐рдиреНрдпрд╛рд╕ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ рдФрд░, рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдорд╛рдиреНрдп YAMT рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВред

6. рдЯреИрдм рдпрд╛ рджреБрд╡рд┐рдзрд╛ рджреБрд╡рд┐рдзрд╛


рдЖрдкрдХреЛ рджреБрд╡рд┐рдзрд╛ "рдЯреИрдм рдпрд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ?" ред рд╡реИрд╢реНрд╡рд┐рдХ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд╕рдВрдЧрдарди рдХреЗ рд╕реНрддрд░ рдкрд░, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╕реАрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдорд╢реАрдиреЛрдВ рдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛, рдпрд╛ рдмрд░реНрдЦрд╛рд╕реНрддрдЧреА рдХреЗ рдЦрддрд░реЗ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрдирд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд░рд╕реАрджреЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд░рд╕реАрдж, рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдЯреАрдо рдХреЗ рд╕рднреА рд╕рджрд╕реНрдп рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ YAML рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреЗрд╡рд▓ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (YAML рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ)ред

рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕реНрд╡рддрдГ рд╕реБрдзрд╛рд░рдХ рдЯреИрдм рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЯреИрдм рджрдВрдЧреЛрдВ рд╕реЗ рдбрд░ рдирд╣реАрдВ рд╕рдХрддреЗред

рдЬреИрд╕рд╛ рдХрд┐ YAML рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рд╣реИ, рдЯреИрдм рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЬрдм рдХреБрдЫ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдиреНрдп рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреИрдм рд╡рдХреНрд░ рдпрд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдорд╛рд░реЗ рдЧрдП рд╕рдордп рдХрд╛ рд╕рдордп рдмрд╕ рдпрд╣ рд░реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рддрддреНрдХрд╛рд▓ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреАрддрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рдкреНрд░рдмрд▓рд┐рдд рдХрдВрдХреНрд░реАрдЯ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд┐рдЯ рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред

7. рдмреЗрд╣рддрд░ рдХрдо рдмреЗрд╣рддрд░ рд╣реИ (рдпрд╛ рдЕрдзрд┐рдХ рдХрдо рд╣реИ)


рдХреБрдЫ рд▓реЛрдЧ YAML рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рд╡реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдШреЛрдЯрд╛рд▓рд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд╕реАрдорд╛рдВрдХрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрд┐рддрддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг Ansible рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :

 # Employee records - martin: name: Martin D'vloper job: Developer skills: - python - perl - pascal - tabitha: name: Tabitha Bitumen job: Developer skills: - lisp - fortran - erlang 

рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╕рд┐рд░ рдореЗрдВ YAML рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЗрдВрдбреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЙрдирдХреА рд░рд╛рдп рдореЗрдВред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдПрдХ YAML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдФрд░ рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдк рдмрдбрд╝реЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ YAML рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рд░рдЦреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ansible рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдиреБрдХрд╕рд╛рди рдХреЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 --- - martin: name: Martin D'vloper job: Developer skills: - python - perl - pascal - tabitha: name: Tabitha Bitumen job: Developer skills: - lisp - fortran - erlang 

8. рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдпрджрд┐ рдЖрдк YAML рдлрд╝рд╛рдЗрд▓ рдХреЛ рднрд░рддреЗ рд╕рдордп рд▓рдЧрд╛рддрд╛рд░ рд╡рд╣реА рдЧрд▓рддрд┐рдпрд╛рдБ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдлрд┐рд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдЗрд╕ рд╡рд░реНрдХрдкреАрд╕ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рдФрд░ рд╡рд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 --- # - <common name>: # name: Given Surname # job: JOB # skills: # - LANG - martin: name: Martin D'vloper job: Developer skills: - python - perl - pascal - tabitha: name: Tabitha Bitumen job: Developer skills: - lisp - fortran - erlang 

9. рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рдЧрд▓ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ YAML рдХреЛ рджреВрд╕рд░реЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рд╕рдордп рдХреЗ рд╕рд╛рде, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЦреБрдж рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд▓реБрдЖ рдпрд╛ рдкрд╛рдпрдерди рдореЗрдВ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред

YAML рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕рдХреА рдЕрддрд┐рд╕реВрдХреНрд╖реНрдорд╡рд╛рдж рдФрд░ рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЙрдкрдХрд░рдг рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рддреЛ рдХрднреА-рдХрднреА рдЖрдк рдЗрд╕реЗ рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рд░реНрдХрд▓ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рд╡рд╛рд╕рди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдкреАрдбрд╝рд╛ рд╕реЗ рдмрдЪреЗ рд░рд╣реЗрдВрдЧреЗред

рдпрджрд┐ рдЖрдк YAML рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрди 10 рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рд▓реЗрдВ рдФрд░ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП YAML рдХреЗ рдЕрдкрдиреЗ рдирд╛рдкрд╕рдВрдж рдХреЛ рд╣рд░рд╛рдПрдВ!

Source: https://habr.com/ru/post/hi462125/


All Articles