Python đọc các dòng từ tệp vào từ điển

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.

{ "bulbasaur": { "fee": 25, "powers": [ "grass" ], "quantity": 5 }, "charmander": { "fee": 100, "powers": [ "fire" ], "quantity": 3 }, "gyrados": { "fee": 1000, "powers": [ "water", "flying" ], "quantity": 1 }, "squirtle": { "fee": 50, "powers": [ "water" ], "quantity": 2 } }

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

Làm cách nào để đọc tệp dưới dạng từ điển trong 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

Làm cách nào để chuyển đổi dữ liệu thành từ điển Python?

Vì từ điển python không có thứ tự nên đầu ra có thể theo bất kỳ thứ tự nào. Để chuyển đổi danh sách thành từ điển, chúng ta có thể sử dụng khả năng hiểu danh sách và tạo khóa. cặp giá trị của các phần tử liên tiếp. Cuối cùng, hãy nhập danh sách để nhập chính tả .

Làm cách nào để chuyển đổi văn bản thành từ điển trong Python?

eval() là một hàm thư viện python có sẵn được sử dụng để chuyển đổi chuỗi thành từ điển một cách hiệu quả . Đối với phương pháp này, bạn phải nhập gói ast từ thư viện python và sau đó sử dụng nó với phương thức literal_eval().

Hàm nào sau đây được sử dụng để đọc tệp vào từ điển trong Python?

Python có chức năng open() tích hợp sẵn để mở tệp. Hàm này trả về một đối tượng tệp, còn được gọi là tay cầm, vì nó được sử dụng để đọc hoặc sửa đổi tệp cho phù hợp. Chúng tôi có thể chỉ định chế độ trong khi mở tệp.

Chủ đề