Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính

YAML2PROPERTIES

Tập lệnh đơn giản để chuyển đổi YAML sang tệp thuộc tính cho cấu hình ứng dụng lò xo.

Yêu cầu tối thiểu

  • Python 2.7+
  • pyperclip (pip cài đặt pyperclip)

Cài đặt thế nào

cp yaml2props.py /usr/local/bin/yaml2props.py
cp yaml2props.sh /usr/local/bin/yaml2props
chmod +x /usr/local/bin/yaml2props

Cách sử dụng

$ yaml2props {your_path_file}

Hoặc bạn có thể tự mình có thể tự mình thực hiện tệp tệp đầu ra với tùy chọn --output

$ yaml2props {your_path_file} --output {your_destination_file_path}

Bạn có thể thử với Sample.yaml dưới dạng tệp ví dụ.

Làm thế nào chúng ta có thể chuyển đổi tệp yaml thành application.properies?Application.properties?

pay.payment:
  sandbox:
   Url: https://securegw-stage//processTransaction
    callbackUrl: http://localhost:8080/pgresponse
    details:
      CHANNEL_ID: '${pay.payment.sandbox.channelid}'
      INDUSTRY_TYPE_ID: '${pay.payment.sandbox.industrytypeid}'
      CALLBACK_URL: '${pay.payment.sandbox.callbackUrl}'

Có công cụ nào để chuyển đổi YAML sang App.Properies trực tuyến không?

Vadim Kotov

7.8568 Huy hiệu vàng46 Huy hiệu bạc61 Huy hiệu Đồng8 gold badges46 silver badges61 bronze badges

Đã hỏi ngày 12 tháng 11 năm 2018 lúc 10:38Nov 12, 2018 at 10:38

Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính

1

Tôi giải quyết vấn đề tương tự bằng cách sử dụng tập lệnh Python.

Chỉ là bản sao và chạy:

$ python yaml2props.py {your_path_file}

Ghi chú

Trong trường hợp cụ thể của tôi trên Ubuntu 18.04, tôi phải cài đặt thư viện PyPerclip và sử dụng Python3, vì vậy:

$ pip3 install pyperclip
$ python3 yaml2props.py {your_path_file}

Đã trả lời ngày 8 tháng 1 năm 2020 lúc 19:41Jan 8, 2020 at 19:41

Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính

3

yml là một cây, để chuyển đổi thành một thuộc tính, bạn chỉ cần nồi hơi bổ sung của hệ thống phân cấp trước đó, ví dụ:

pay.payment.sandbox.url=https://securegw-stage//processTransaction
pay.payment.sandbox.callbackurl=http://localhost:8080/pgresponse
pay.payment.sandbox.details.CHANNEL_ID='${pay.payment.sandbox.channelid}'
pay.payment.sandbox.details.INDUTRY_TYPE_ID='${pay.payment.sandbox.industrytypeid}'
pay.payment.sandbox.details.CALLBACK_URL='${pay.payment.sandbox.callbackUrl}'

Đã trả lời ngày 12 tháng 11 năm 2018 lúc 10:58Nov 12, 2018 at 10:58

Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính

Darren Forsythedarren ForsytheDarren Forsythe

9.6253 huy hiệu vàng40 Huy hiệu bạc48 Huy hiệu đồng3 gold badges40 silver badges48 bronze badges

2

YAML sang thuộc tính / thuộc tính để chuyển đổi YAML

  1. & nbsp;

Yaml

YAML (một từ viết tắt đệ quy cho "Yaml không phải là ngôn ngữ đánh dấu") là ngôn ngữ chủ yếu hóa dữ liệu có thể đọc được của con người. Nó thường được sử dụng cho các tệp cấu hình và trong các ứng dụng nơi dữ liệu được lưu trữ hoặc truyền. YAML nhắm mục tiêu nhiều ứng dụng liên lạc giống như ngôn ngữ đánh dấu có thể mở rộng (XML) nhưng có cú pháp tối thiểu có chủ ý khác với SGML. [1] Danh sách và {} cho bản đồ [1] làm cho yaml 1.2 thành một superset của JSON.

Json

Ký hiệu đối tượng JavaScript (JSON) là một định dạng tệp tiêu chuẩn mở và định dạng trao đổi dữ liệu, sử dụng văn bản có thể đọc được của con người để lưu trữ và truyền các đối tượng dữ liệu bao gồm các cặp giá trị và loại dữ liệu mảng thuộc tính (hoặc bất kỳ giá trị có thể nối tiếp nào khác). Đây là một định dạng dữ liệu rất phổ biến, với một loạt các ứng dụng, chẳng hạn như đóng vai trò thay thế cho XML trong các hệ thống AJAX.

Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính

Allway2 于 & nbsp; 2022-05-01 19: 30: 11 & nbsp; 发布 227 收藏

Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính
于 2022-05-01 19:30:11 发布
Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính
227
Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính
收藏

版权 声明 : 文 博主 , , , cc 4.0 by-SA 版权 , 转载 附上 附上 原 文 出处 链接

GitHub - UP2Code/Yaml2Props: Chuyển đổi YAML thành thuộc tính cho Cấu hình lò xo YAML thành Thuộc tính cho Cấu hình lò xo - GitHub - UP2Code/Yaml2Props: Chuyển đổi YAML thành Thuộc tính cho Cấu hình lò xoConvert YAML to Properties for Spring configuration - GitHub - up2code/yaml2props: Convert YAML to Properties for Spring configuration

Hướng dẫn python convert yaml to properties - python chuyển đổi yaml thành thuộc tính
https://github.com/up2code/yaml2props

import argparse
import os.path
import pyperclip
import re
import os

TAB_SIZE = 2
USE_SPACES = True

parser = argparse.ArgumentParser(
    prog = 'YAML2Properties',
    description = 'Simple script for convert YAML to Properties file format.'
)
parser.add_argument('file', help = 'Path of YAML file')
parser.add_argument('--output', help = 'Output path. Default is same path of input file by replace extension to .properties')

args = parser.parse_args()

print('YAML File : %s' % args.file)

output_file_path = args.output

if(not output_file_path):
    output_file_path = os.path.splitext(args.file)[0]+'.properties'

if not os.path.isfile(args.file):
    raise ValueError(args.file + ' is not file')

formatted = ''

with open(args.file) as f:
    lines = f.readlines()

prop = []
output = ''
array_object = False

for line in lines:
    ignore = re.search(r'^\s*#', line)
    array_line = re.search(r'^\s*-\s', line) is not None

    if not array_line:
        array_index = -1

    if ignore or not line.strip() or not ':' in line and not array_line:
        output += '\n' if len(output) else ''
        continue

    tabs = re.findall(r'(' + (TAB_SIZE * '\s') + ')', line.split(':')[0])

    index = len(tabs) if tabs else 0

    result_prop = re.search(r'.+(?=:\s)', line)
    
    if index is 0:
        prop = []
        prop.append(result_prop.group().strip())
    else:
        if array_line:
            array_index += 1
        else:
            prop_name = result_prop.group(0).strip()

        while array_index < 0 and prop and index < len(prop):
            prop.pop()

        if array_index < 0:
            prop.append(prop_name)

    value = re.search(r'(?<=:).+', line) if array_index < 0 else re.search(r'(?<=-\s).+', line)

    if value and value.group().strip():
        p = '%(key)s%(idx)s%(spc)s=%(spc)s%(value)s\n' % {
            'key': '.'.join(prop),
            'idx': ('[%d]' % array_index) if array_index >= 0 else '',
            'spc': ' ' if USE_SPACES else '',
            'value': value.group().strip()
        }
        output += p

print('\nSave to file : ' + output_file_path)
 
 # Write file
file_props = open(output_file_path,'w+')
file_props.write(re.sub(r'\n\n\n+', '\n\n', output))
file_props.close()

print('Done!')

Ứng dụng yaml2props.py.yml

Làm cách nào để chuyển đổi tệp yaml thành tệp thuộc tính?

IntelliJ và các IDE khác cung cấp các plugin cho cùng.Cài đặt plugin, nhấp chuột phải vào tệp YAML hoặc thuộc tính của bạn và chọn - "Chuyển đổi tệp YAML và Thuộc tính" ...
Ứng dụng-DEV.đặc tính..
Ứng dụng.đặc tính..
ứng dụng thử nghiệm.đặc tính..

Yaml có tốt hơn các thuộc tính không?

Các tệp YAML rõ ràng hơn và có thể đọc được so với các tệp thuộc tính và cũng cung cấp một số tính năng độc đáo và hữu ích cho chúng tôi.YAML hỗ trợ bản đồ, danh sách và loại vô hướng. and also provide several unique and useful feature for us. YAML supports Maps, lists, and scalar types.

Sự khác biệt giữa tệp YAML và thuộc tính là gì?

Tệp yml) là nếu bạn đang sử dụng nhiều hơn một ứng dụng đọc cùng một tệp cấu hình.... Bảng khác biệt:.

Tại sao YAML tốt hơn tệp thuộc tính?

YAML có nhiều tính năng siêu hơn khi so sánh với các thuộc tính trong các tính năng như loại (danh sách và bản đồ), an toàn loại và cấu trúc phân cấp.Tốt nhất là chọn YAML với hỗ trợ ngôn ngữ lập trình rộng hơn.. It is always best to choose yaml with wider programming language support.