Mã Python sau đọc tệp bằng hàm open(). Mỗi dòng dưới dạng chuỗi được phân tách tại ký tự khoảng trắng. Thành phần đầu tiên được sử dụng làm khóa và thứ hai làm giá trị
d = {} with open("dict.txt") as f: for line in f: (key, val) = line.split() d[int(key)] = val print (d)Đầu ra hiển thị nội dung của tệp ở dạng từ điển
{1: 'aaa', 2: 'bbb', 3: 'ccc'}Trước hết, cảm ơn bạn đã dán mã của mình và cố gắng định dạng nó. Bạn gần như đã làm đúng, bạn chỉ cần sử dụng 3 dấu gạch ngược ({1: 'aaa', 2: 'bbb', 3: 'ccc'}1) thay vì dấu nháy đơn ({1: 'aaa', 2: 'bbb', 3: 'ccc'}2). Nếu bạn có thể chỉnh sửa bài đăng của mình để nó hiển thị chính xác thì điều đó thật tuyệt, nếu không thì chúng tôi không thể chắc chắn mã của bạn thực sự trông như thế nào và cũng không thể dễ dàng tự sao chép và dán mã đó
Thứ hai, có lẽ bạn nên xem xét việc sử dụng mô-đun {1: 'aaa', 2: 'bbb', 3: 'ccc'}3. Nó được thiết kế để đọc và ghi dữ liệu như thế này và xử lý hầu hết các phân tích cú pháp cho bạn
https. // tài liệu. con trăn. org/3/library/csv. html
Mặc dù nếu bạn đi theo con đường này, bạn sẽ phải thực hiện thêm một số công việc vì các từ điển và danh sách lồng nhau của bạn sẽ được lưu trữ dưới dạng chuỗi
Bạn đang làm gì với dữ liệu này? . Bạn sẽ xem xét một định dạng tập tin khác?
https. // tài liệu. con trăn. org/3/thư viện/json. html
Ví dụ.
Tệp {1: 'aaa', 2: 'bbb', 3: 'ccc'}6 của bạn sẽ như thế này.
và bạn sẽ sử dụng mã này để đọc và lưu nó
import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4)Ngoài các nhận xét ở trên, bạn có thể muốn xem xét thư viện Pandas phổ biến, giúp làm việc với dữ liệu dạng bảng dễ dàng hơn nhiều. Bạn có thể đọc tệp CSV của mình thành Khung dữ liệu Pandas trong một dòng, {1: 'aaa', 2: 'bbb', 3: 'ccc'}7 và nó sẽ tự động chuyển đổi tất cả các loại dữ liệu cho bạn. Sau đó, bạn có thể xuất nó thành một lệnh Python ở định dạng được chỉ định với {1: 'aaa', 2: 'bbb', 3: 'ccc'}8, thành tệp JSON với import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 0 hoặc CSV gốc của bạn với import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 1. Bạn có thể sắp xếp df của mình bằng import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 2
Tuy nhiên, có một vấn đề tiềm ẩn với cách tiếp cận này hoặc cách tiếp cận dựa trên {1: 'aaa', 2: 'bbb', 3: 'ccc'}3 được đề xuất trước đó—bạn có một số lượng trường import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 4 thay đổi, có vẻ như bạn định đọc dưới dạng danh sách lồng nhau. Cung cấp một chút kiến thức về lĩnh vực cụ thể, có vẻ như điều này tương ứng với "Loại" của Pokemon, theo Bulbapedia, một Pokemon chỉ có thể có một hoặc hai loại. Như vậy, cách đơn giản nhất để xử lý việc này là chỉ cần khai báo 2 cột, import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 5 và import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 6, và Pandas (hoặc {1: 'aaa', 2: 'bbb', 3: 'ccc'}3) sẽ điền giá trị đầy đủ vào cột thứ hai nếu không có. Tất nhiên, điều đó không giúp bạn có được một danh sách trong cấu trúc dữ liệu đầu ra của mình, nhưng làm việc với nó đơn giản hơn rất nhiều; . g. đại loại như import json database_filename = 'pokemons.txt' with open(database_filename) as file: pokemon = json.load(file) def save(): with open(database_filename, 'w') as f: json.dump(pokemon, f, sort_keys=True, indent=4) 8