Python nhập từ điển từ một tệp khác
Jeff Noble, một nhà khảo cổ học hàng hải, đã thành lập một nhóm để tìm kiếm các vụ đắm tàu mỗi tháng. Tháng này, họ sẽ tìm kiếm Xác tàu đắm Edmund Fitzgerald. một tàu chở hàng Great Lakes bị mất năm 1975. Các chi tiết về vụ đắm tàu này đã được cung cấp cho anh ta ở các định dạng sau Show
Jeff muốn bạn viết một tập lệnh đọc một trong các loại tệp trên và xuất ra thiết bị đầu cuối theo cột Nội dung tệp (được lưu dưới dạng {"Name": "SS Edmund Fitzgerald", "Nickname": "Titanic of the Great Lakes", "Ordered": "bruary 1, 1957", "Owner": "Northwest Mutual", 💬 câu hỏi. Làm cách nào để chúng tôi đọc trong tệp Từ điển và xác định phương pháp tốt nhất? Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau
Trước khi bất kỳ thao tác dữ liệu nào có thể xảy ra, một (1) thư viện mới sẽ yêu cầu cài đặt
Để cài đặt thư viện này, hãy điều hướng đến một thiết bị đầu cuối IDE. Tại dấu nhắc lệnh ( import pandas from pandas import json_normalize import ast import json import pickle4), hãy thực thi mã bên dưới. Đối với thiết bị đầu cuối được sử dụng trong ví dụ này, dấu nhắc lệnh là ký hiệu đô la ( import pandas from pandas import json_normalize import ast import json import pickle4). Lời nhắc thiết bị đầu cuối của bạn có thể khác $ pip install pandas Nhấn phím import pandas from pandas import json_normalize import ast import json import pickle6 trên bàn phím để bắt đầu quá trình cài đặt Nếu quá trình cài đặt thành công, một thông báo sẽ hiển thị trong thiết bị đầu cuối cho biết điều tương tự Vui lòng xem hướng dẫn cài đặt PyCharm để biết các thư viện cần thiết
Thêm đoạn mã sau vào đầu mỗi đoạn mã. Đoạn mã này sẽ cho phép mã trong bài viết này chạy không có lỗi import pandas from pandas import json_normalize import ast import json import pickle 💡 Lưu ý. Các thư viện bổ sung được chỉ ra ở trên không yêu cầu cài đặt vì chúng được tích hợp sẵn vào Python Phương pháp 1. sử dụng ast. literal_eval()Hàm import pandas from pandas import json_normalize import ast import json import pickle7 đọc và phân tích cú pháp một chuỗi từ vùng chứa Python, chẳng hạn như Từ điển with open('ef.txt', 'r') as fp: data = fp.read() details = ast.literal_eval(data) for key, value in details.items(): print ("{:<20} {:<10} ".format(key, value))
💡 Lưu ý. Trước đây, có ý kiến cho rằng chức năng này gây ra rủi ro bảo mật. Tuy nhiên, vì mã này chỉ phân tích cú pháp, nó không phải là vấn đề đáng lo ngại Đầu ra (đoạn trích) NameSS Edmund Fitzgerald Biệt danhTitanic of the Great LakesĐặt hàng ngày 1 tháng 2 năm 1957Chủ sở hữu Northwest Mutual Thuyền trưởngErnest M. McSorleyTypeGreat Lakes FreighterHàng hóa Quặng sắtPhương pháp 2. Sử dụng JSONCấu trúc tệp JSON dựa trên khóa. cặp giá trị. giống như một Từ điển Python. Định dạng này thường được sử dụng để truyền dữ liệu và được ưa chuộng vì khả năng đọc được bằng nhiều ngôn ngữ mã hóa. Chi phí thấp của nó mang lại cho tùy chọn này những ngón tay cái lên with open('ef.json', 'r') as fp: details = json.load(fp) for key, value in details.items(): print ("{:<20} {:<10} ".format(key, value))
Làm cách nào để đọc tệp JSON bằng Python? Xem video này trên YouTube Đầu ra (đoạn trích) NameSS Edmund Fitzgerald Biệt danhTitanic of the Great LakesĐặt hàng ngày 1 tháng 2 năm 1957Chủ sở hữu Northwest Mutual Thuyền trưởngErnest M. McSorleyTypeGreat Lakes FreighterHàng hóa Quặng sắtPhương pháp 3. sử dụng dưa chuaMột nơi tốt để sử dụng tệp Pickle là khi bạn có dữ liệu nhạy cảm hoặc khi bạn cần giữ trạng thái chương trình trong các phiên. Dữ liệu được tuần tự hóa và lưu trữ dưới dạng tệp nhị phân with open('ef.pickle', 'rb') as fp: details = pickle.load(fp) for key, value in details.items(): print ("{:<20} {:<10} ".format(key, value))
Đầu ra (đoạn trích) NameSS Edmund Fitzgerald Biệt danhTitanic of the Great LakesĐặt hàng ngày 1 tháng 2 năm 1957Chủ sở hữu Northwest Mutual Thuyền trưởngErnest M. McSorleyTypeGreat Lakes FreighterHàng hóa Quặng sắtPhương pháp 4. Đọc một DataFrameNếu bạn thích làm việc với DataFrames, thì việc chuyển đổi tệp thành DataFrame có thể là lý tưởng. Theo mặc định, không cần định dạng bổ sung, đầu ra được đặt thành hiển thị ở định dạng cột with open('ef.json', 'rb') as fp: details = fp.read() df = json_normalize(json.loads(details)).T print(df)
Đầu ra (đoạn trích) NameSS Edmund Fitzgerald Biệt danhTitanic of the Great LakesĐặt hàng ngày 1 tháng 2 năm 1957Chủ sở hữu Northwest Mutual Thuyền trưởngErnest M. McSorleyTypeGreat Lakes FreighterHàng hóa Quặng sắtBản tóm tắtChúng tôi đã chọn Phương pháp 2 (JSON) là tùy chọn tốt nhất khi xem xét các phương pháp trên. JSON nhanh hơn vì nó cần ít byte hơn để truyền và ít thời gian xử lý hơn Làm cách nào để tải từ điển từ tệp Python?Chúng tôi có thể đọc từ điển từ một tệp theo 3 cách. . Sử dụng json. phương thức tải (). Chuyển đổi chuỗi từ điển hợp lệ thành dạng json sử dụng ast. phương thức literal_eval(). Hàm an toàn hơn hàm eval và cũng có thể được sử dụng để chuyển đổi xen kẽ tất cả các loại dữ liệu ngoài từ điển Sử dụng dưa chua Tôi có thể nhập một biến từ một tệp Python khác không?Nhập các biến từ một tệp khác trong cùng một thư mục
Làm cách nào để chuyển đổi dữ liệu tệp văn bản thành từ điển trong Python?1) Sử dụng json. tải()
. Trước khi sử dụng phương pháp này, bạn phải nhập thư viện json trong python bằng từ khóa “nhập”.
Làm cách nào bạn có thể nhập tất cả các hàm từ tệp Python trong từ điển trước đó?importlib cho phép bạn nhập bất kỳ mô-đun Python nào từ tên chuỗi . Bạn có thể tự động hóa nó bằng cách xem qua danh sách các tệp trong đường dẫn. Sử dụng Pythonic hơn __all__. Kiểm tra ở đây để biết thêm chi tiết. |