import plistlib from collections import defaultdict def parse_books_plist(plist_path): booksinfo = defaultdict(dict) with open(plist_path, 'rb') as f: plist_data = plistlib.load(f) for book in plist_data.get('Books', []): bk_id = book.get('BKGeneratedItemId') if not bk_id: continue booksinfo[bk_id] = { 'displayname': book.get('BKDisplayName', ''), 'author': book.get('artistName', ''), 'type': book.get('BKBookType', ''), 'bookid': bk_id, 'itemname': book.get('itemName', ''), 'path': book.get('path', '') } return booksinfo if __name__ == '__main__': booksinfo = parse_books_plist('./data/Books.plist') from pprint import pprint print("\n【前三条示例】") for k, v in list(booksinfo.items())[:3]: print(f"{k}:") pprint(v, sort_dicts=False, indent=2) print('-' * 60) ''' print("\n【全部内容】") for k, v in booksinfo.items(): print(f"{k}:") pprint(v, sort_dicts=False, indent=2) print('-' * 60) '''