Hướng dẫn convert json to hcl python - chuyển đổi json thành hcl python

Hướng dẫn convert json to hcl python - chuyển đổi json thành hcl python

JSON2HCL (và HCL2JSON)

Chuyển đổi JSON sang HCL và HCL sang JSON thông qua stdin / stdout.

Cảnh báo

Chúng tôi không sử dụng JSON2HCL nữa, vì vậy chúng tôi không thể đầu tư thời gian vào nó. Tuy nhiên, chúng tôi vẫn chào đón PRS.

Cài đặt

Kiểm tra các bản phát hành cho phiên bản mới nhất. Sau đó, đó chỉ là vấn đề tải xuống đúng nền tảng cho bạn và làm cho nhị phân có thể thực thi.

Linux

Đây là cách nó có thể tìm kiếm 64 bit Linux, nếu bạn muốn json2hcl có sẵn trên toàn cầu bên trong /usr/local/bin:

curl -SsL https://github.com/kvz/json2hcl/releases/download/v0.0.6/json2hcl_v0.0.6_linux_amd64 \
  | sudo tee /usr/local/bin/json2hcl > /dev/null && sudo chmod 755 /usr/local/bin/json2hcl && json2hcl -version

OSX

Đây là cách nó có thể tìm kiếm 64 bit Darwin, nếu bạn muốn json2hcl có sẵn trên toàn cầu bên trong /usr/local/bin:

curl -SsL https://github.com/kvz/json2hcl/releases/download/v0.0.6/json2hcl_v0.0.6_darwin_amd64 \
  | sudo tee /usr/local/bin/json2hcl > /dev/null && sudo chmod 755 /usr/local/bin/json2hcl && json2hcl -version

Sử dụng

Đây là một ví dụ

curl -SsL https://github.com/kvz/json2hcl/releases/download/v0.0.6/json2hcl_v0.0.6_darwin_amd64 \
  | sudo tee /usr/local/bin/json2hcl > /dev/null && sudo chmod 755 /usr/local/bin/json2hcl && json2hcl -version
0 được chuyển đổi thành HCL:

$ json2hcl < fixtures/infra.tf.json
"output" "arn" {
  "value" = "${aws_dynamodb_table.basic-dynamodb-table.arn}"
}
... rest of HCL truncated

Sử dụng điển hình sẽ là

$ json2hcl < fixtures/infra.tf.json > fixtures/infra.tf

hcl2json

Như một phần thưởng, việc chuyển đổi theo cách khác cũng được hỗ trợ thông qua cờ

curl -SsL https://github.com/kvz/json2hcl/releases/download/v0.0.6/json2hcl_v0.0.6_darwin_amd64 \
  | sudo tee /usr/local/bin/json2hcl > /dev/null && sudo chmod 755 /usr/local/bin/json2hcl && json2hcl -version
1:

$ json2hcl -reverse < fixtures/infra.tf
{
  "output": [
    {
      "arn": [
        {
          "value": "${aws_dynamodb_table.basic-dynamodb-table.arn}"
        }
      ]
    }, 
  ... rest of JSON truncated
  ]
}

Sự phát triển

mkdir -p ~/go/src/github.com/kvz
cd ~/go/src/github.com/kvz
git clone :kvz/json2hcl.git
cd json2hcl
go get

Why?

Nếu bạn không biết HCL, hãy đọc tại sao HCl.

Về lý do tại sao JSON2HCL và HCL2JSON, chúng tôi đang xây dựng một công cụ gọi là Frey kết hôn với nhiều công cụ cơ bản. Chúng tôi muốn cấu hình trước đây được viết bằng YAML hoặc TOML bây giờ cũng ở HCL. Nó đủ dễ dàng để chuyển đổi các định dạng được đề cập thành JSON và nói đúng ra HCL đã có thể đọc JSON tự nhiên, vậy tại sao bước thêm?

Chúng tôi đang thực hiện điều này để có khả năng đọc và khả năng bảo trì, chúng tôi muốn lưu các công thức nấu ăn của mình dưới dạng HCL trực tiếp trong repos của chúng tôi, thay vì chỉ có JSON trung gian có thể đọc được máy mà chúng tôi cần phải hack. Điều này giúp tiết kiệm thời gian phát hiện các vấn đề, và làm cho trải nghiệm này có phần thú vị.

Trong cơ hội, bạn cũng có JSON có thể đọc được bằng máy và quan tâm đến việc chuyển đổi nó thành định dạng HCL thân thiện với con người hơn, chúng tôi nghĩ rằng chúng tôi sẽ chia sẻ điều này.

Đó không phải là khoa học tên lửa, chúng tôi đã sử dụng các thư viện Hashicorp đã có sẵn để hỗ trợ chuyển đổi, Hashicorp có thể dễ dàng phát hành các công cụ của riêng họ xung quanh việc này, và có lẽ họ sẽ làm, nhưng cho đến nay, chúng vẫn chưa.

Thay đổi

Ý tưởng (không có kế hoạch)

  • Cho readme.md một số tình yêu

v0.0.7 (chưa phát hành)

  • Xét nghiệm

v0.0.6 (2016-09-06)

  • Dành được GOXC ủng hộ các bản dựng gốc

v0.0.5 (2016-09-06)

  • Thêm HCL2JSON qua cờ
    curl -SsL https://github.com/kvz/json2hcl/releases/download/v0.0.6/json2hcl_v0.0.6_darwin_amd64 \
      | sudo tee /usr/local/bin/json2hcl > /dev/null && sudo chmod 755 /usr/local/bin/json2hcl && json2hcl -version
    1

v0.0.4 (2016-09-05)

  • Xử lý lỗi
  • Các bản phát hành thông tin và vận chuyển chéo

Người đóng góp

  • Marius Kleidl
  • Kevin Van Zonneveld

Chào mọi người!

Bản đồ chính xác của các cấu trúc HCL cho JSON phụ thuộc vào kỳ vọng của chương trình phân tích cú pháp, do thực tế là ví dụ: Một số khối lồng nhau có thể được chỉ định nhiều lần (và do đó ánh xạ tới mảng JSON) trong khi các khối khác chỉ có thể được chỉ định một lần (và do đó được chỉ định tốt hơn là một đối tượng duy nhất). Do đó, để được tư vấn về cách viết đầu vào JSON cho một ứng dụng cụ thể, bạn có thể sẽ nhận được câu trả lời tốt hơn từ nhóm hoạt động trên ứng dụng đó, trong trường hợp nó chưa được đề cập trong các tài liệu ứng dụng.

Họ hy vọng cũng có thể sử dụng câu hỏi/phản hồi của bạn để cải thiện tài liệu dành riêng cho ứng dụng với nhiều ví dụ về các biến thể JSON của các định dạng cấu hình tương ứng của chúng.

JSON HCL có hợp lệ không?

HCL cũng hoàn toàn tương thích với JSON.Đó là, JSON có thể được sử dụng như là đầu vào hoàn toàn hợp lệ cho một hệ thống mong đợi HCL.. That is, JSON can be used as completely valid input to a system expecting HCL.

HCl ở Python là gì?

Thư viện HCL, hay Ngôn ngữ lệnh Highbond, là thư viện Python tùy chỉnh của Diligent để phân tích dữ liệu tập trung vào miền và tự động hóa Highbond.HighBond Command Language, is Diligent's custom Python library for domain-focused data analysis and HighBond automation.

Làm cách nào để sử dụng JSON trong Terraform?

Terraform cũng hỗ trợ một cú pháp thay thế tương thích với JSON.Cú pháp này rất hữu ích khi tạo các phần của cấu hình theo chương trình, vì các thư viện JSON hiện tại có thể được sử dụng để chuẩn bị các tệp cấu hình được tạo.Cú pháp JSON được xác định theo thuật ngữ của cú pháp gốc.The JSON syntax is defined in terms of the native syntax.