Làm cách nào để tạo chữ trong bản đồ được ánh xạ bằng YAML?
Tôi đang cố gắng sử dụng PyYAML Đặt chữ vào ánh xạ trong YAML. dựa trênThông số YAMLViệc lập bản đồ của các bản đồ được thực hiện theo các cách sau:
Mark McGwire: {giờ: 65, trung bình: 0,278}
Sammy Sosa: {
Nhân sự: 63,
trung bình: 0,288
}
Và văn bản giữ nguyên ngắt dòng được thực hiện theo cách sau:
số liệu thống kê: |
63 Cuộc Chạy Về Nhà
Trung bình đánh bóng 0,288
Bây giờ tôi cố gắng kết hợp chữ với bản đồ được ánh xạ như thế này:
Sammy Sosa: {
Nhân sự: 63,
trung bình: 0,288,
số liệu thống kê: |
63 Cuộc Chạy Về Nhà
Trung bình đánh bóng 0,288
}
và đưa ra một lỗi:
yaml.scanner.ScannerError: trong khi quét mã thông báo tiếp theo
đã tìm thấy ký tự '|' không thể bắt đầu bất kỳ mã thông báo nào
trong "test.yml", dòng 4, cột 12
Có cách nào khác hoặc cách giải quyết khác để đưa chữ vào bản đồ của bản đồ trong YAML không?
"nghĩa đen" của bạn được gọi chính thức hơn là vô hướng kiểu khối chữ . Ngoàiphong cách khối有phong cách dòng chảy . Bạn đang sử dụng chìa khóa Sammy Sosa
Kiểu luồng của giá trị liên quan.
hiện hữukiểu dòng chảy bạn không được phép có kiểu khốiBên trong
YAML cho phép các nút luồng được nhúng bên trong các bộ sưu tập khối (nhưng không phải ngược lại).
, nhưng đó chính là điều bạn đang cố gắng thực hiện với chìa khóa số liệu thống kê
Hoạt động được thực hiện trên giá trị. Ngoài ra, bạn không thụt lề đủ theo nghĩa đen.
Bằng cách loại bỏ kết quả phù hợp {
,}
và theo sau ,
, thay đổi ánh xạ kiểu luồng thành kiểu khối. Căn chỉnh các phím (bắt buộc trong kiểu khối) và thụt lề theo nghĩa đen một cách thích hợp (tức là hơn số liệu thống kê
Có nhiều cột bắt đầu).
Đây là YAML hợp lệ tương đương với những gì bạn muốn đạt được:
Sammy Sosa:
Nhân sự: 63
trung bình: 0,288
số liệu thống kê: |
63 Cuộc Chạy Về Nhà
Trung bình đánh bóng 0,288
Ví dụ đầu tiên về bản đồ kiểu quy trình trong bản đồ kiểu khối cũng có thể được viết lại dưới dạng bản đồ kiểu khối trong bản đồ kiểu khối như sau:
Đánh dấu McGwire:
Nhân sự: 65
trung bình: 0,278
Sammy Sosa:
Nhân sự: 63
trung bình: 0,288
Không có sự khác biệt cho mục đích này, nhưng bạn cũng nên lưu ý rằng bạn đang sử dụng đặc tả YAML 1.2 (từ 2009), nhưng thư viện PyYAML của Python chỉ hỗ trợ hầu hết YAML 1.1 cũ hơn (từ 2005).
Tôi là một lập trình viên xuất sắc, rất giỏi!