Tôi có một danh sách các dicts lưu trữ URL. Nó chỉ đơn giản là hai trường, title
và url
. Ví dụ:Trình bày một tập hợp các URL trong một danh sách dưới dạng cấu trúc cây
[
{'title': 'Index Page', 'url': 'http://www.example.com/something/index.htm'},
{'title': 'Other Page', 'url': 'http://www.example.com/something/other.htm'},
{'title': 'About Page', 'url': 'http://www.example.com/thatthing/about.htm'},
{'title': 'Detail Page', 'url': 'http://www.example.com/something/thisthing/detail.htm'},
]
Tuy nhiên, tôi muốn có cấu trúc cây từ danh sách này của dicts. Tôi đang tìm một cái gì đó như thế này:
{ 'www.example.com':
[
{ 'something':
[
{ 'thisthing':
[
{ 'title': 'Detail Page', 'url': 'detail.htm'}
]
},
[
{ 'title': 'Index Page', 'url': 'index.htm'},
{ 'title': 'Other Page', 'url': 'other.htm'}
]
]
},
{ 'thatthing':
[
{ 'title': 'About Page', 'url': 'about.htm'}
]
}
]
}
nỗ lực đầu tiên của tôi tại đây sẽ là một món súp urlparse trong một loạt các vòng lặp for và tôi tự tin rằng có một cách tốt hơn và nhanh hơn để làm điều này.
Tôi đã nhìn thấy mọi người về phép toán công việc SO với tính năng hiểu danh sách, hàm lambda, v.v. Tôi vẫn đang trong quá trình tìm hiểu.
(Đối với các nhà phát triển Django: Tôi sẽ sử dụng ứng dụng này Django của tôi, tôi đang lưu trữ các URL trong một mô hình gọi là Page
trong đó có hai lĩnh vực name
và title
.)
Điều này dường như chỉ hoạt động đối với đường dẫn một cấp sâu. Tôi shoudl đã được rõ ràng hơn. Nó không hoạt động đối với các URL như thế này: http: // www.example.com/thisthing/thisthing/about.htm'. –
Xin chào Jro. Tôi không có quyền tự do để thay đổi các mô hình vì vậy đó là ra ngoài. Lý do để làm như trên là trả về tất cả các bản ghi này qua JSON. Bạn đúng về thực tế là kiểm tra xem một nút là một danh sách để xem nó có phải là một tập hợp các trang hay không nhưng tôi không thể nghĩ ra một định dạng cây tốt hơn để biểu diễn dữ liệu như thế này. Tôi quay lại vấn đề ban đầu khi cố gắng chuyển đổi danh sách URL đó thành định dạng dữ liệu mẫu. Tôi thực sự đánh giá cao sự giúp đỡ của bạn, nhưng nếu bằng cách nào đó bạn có thể chỉ cho tôi làm thế nào để chuyển đổi nó, nó sẽ là một cứu trợ. Tôi đã đánh đầu mình nhưng không may mắn. Cảm ơn Jro. –
Aha. Cảm ơn bạn. Thaks bạn Jro. Tôi đã chấp nhận câu trả lời của bạn nhưng một điều nhỏ: làm thế nào tôi có thể loại bỏ tất cả các dicts trống và danh sách? Tôi có cần phải đi lại để đi qua toàn bộ cây không? –