Hướng dẫn how to store a dictionary in a file python - cách lưu trữ từ điển trong tệp python

Tôi có vấn đề với việc thay đổi giá trị dict và lưu dict cho một tệp văn bản [định dạng phải giống nhau], tôi chỉ muốn thay đổi trường

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
0.

Tệp văn bản của tôi là định dạng sau:

memberID:member_name:member_email:member_phone

Và tôi chia tệp văn bản với:

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e

Khi tôi cố gắng thay đổi

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
0 được lưu trữ trong
def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
2, giá trị đã thay đổi không chảy bằng khóa,

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']

Và làm thế nào để lưu dict cho một tệp văn bản có cùng định dạng?

Martineau

Huy hiệu vàng 115K2525 gold badges160 silver badges284 bronze badges

Đã hỏi ngày 5 tháng 10 năm 2013 lúc 18:34Oct 5, 2013 at 18:34

Python có mô -đun dưa chua chỉ cho loại điều này.

Các chức năng này là tất cả những gì bạn cần để lưu và tải hầu hết mọi đối tượng:

with open['saved_dictionary.pkl', 'wb'] as f:
    pickle.dump[dictionary, f]
        
with open['saved_dictionary.pkl', 'rb'] as f:
    loaded_dict = pickle.load[f]

Để lưu bộ sưu tập Python, có mô -đun kệ.

Đã trả lời ngày 5 tháng 10 năm 2013 lúc 18:50Oct 5, 2013 at 18:50

ZahzahZah

5,8231 Huy hiệu vàng21 Huy hiệu bạc34 Huy hiệu đồng1 gold badge21 silver badges34 bronze badges

5

Pickle có lẽ là lựa chọn tốt nhất, nhưng trong trường hợp mọi người tự hỏi làm thế nào để lưu và tải từ điển vào một tệp bằng cách sử dụng Numpy:

import numpy as np

# Save
dictionary = {'hello':'world'}
np.save['my_file.npy', dictionary] 

# Load
read_dictionary = np.load['my_file.npy',allow_pickle='TRUE'].item[]
print[read_dictionary['hello']] # displays "world"

FYI: Trình xem tệp NPY

10xAI

1551 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

Đã trả lời ngày 26 tháng 8 năm 2015 lúc 0:05Aug 26, 2015 at 0:05

8

Chúng tôi cũng có thể sử dụng mô -đun

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
3 trong trường hợp khi từ điển hoặc một số dữ liệu khác có thể dễ dàng được ánh xạ tới định dạng JSON. in the case when dictionaries or some other data can be easily mapped to JSON format.

import json

# Serialize data into file:
json.dump[ data, open[ "file_name.json", 'w' ] ]

# Read data from file:
data = json.load[ open[ "file_name.json" ] ]

Giải pháp này mang lại nhiều lợi ích, ví dụ như hoạt động cho Python 2.x và Python 3.x ở dạng không thay đổi và ngoài ra, dữ liệu được lưu ở định dạng JSON có thể dễ dàng chuyển giữa nhiều nền tảng hoặc chương trình khác nhau. Dữ liệu này cũng có thể đọc được con người., eg works for Python 2.x and Python 3.x in an unchanged form and in addition, data saved in JSON format can be easily transferred between many different platforms or programs. This data are also human-readable.

Đã trả lời ngày 11 tháng 3 năm 2019 lúc 19:59Mar 11, 2019 at 19:59

Simhumilecosimhumilecosimhumileco

28.6K16 Huy hiệu vàng126 Huy hiệu bạc106 Huy hiệu Đồng16 gold badges126 silver badges106 bronze badges

2

Lưu và tải Dict vào Tệp:

def save_dict_to_file[dic]:
    f = open['dict.txt','w']
    f.write[str[dic]]
    f.close[]

def load_dict_from_file[]:
    f = open['dict.txt','r']
    data=f.read[]
    f.close[]
    return eval[data]

Đã trả lời ngày 27 tháng 8 năm 2018 lúc 17:57Aug 27, 2018 at 17:57

JungleJetJungleJetjunglejet

2372 Huy hiệu bạc2 Huy hiệu đồng2 silver badges2 bronze badges

Vì Pickle có một số mối quan tâm về bảo mật và chậm [nguồn], tôi sẽ đi cho JSON, vì nó nhanh, tích hợp, có thể đọc được và có thể thay thế cho con người:

import json
data = {'another_dict': {'a': 0, 'b': 1}, 'a_list': [0, 1, 2, 3]}
# e.g. file = './data.json' 
with open[file, 'w'] as f: 
    json.dump[data, f]

Đọc là tương tự dễ dàng:

with open[file, 'r'] as f:
    data = json.load[f]

Điều này tương tự như câu trả lời này, nhưng thực hiện xử lý tệp một cách chính xác.

Nếu việc cải thiện hiệu suất vẫn chưa đủ, tôi thực sự khuyên bạn nên

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
4, thư viện JSON nhanh, chính xác cho Python xây dựng khi bị rỉ sét.

Đã trả lời ngày 14 tháng 10 năm 2020 lúc 14:19Oct 14, 2020 at 14:19

Michael Dornermichael DornerMichael Dorner

15.3k11 Huy hiệu vàng76 Huy hiệu bạc107 Huy hiệu đồng11 gold badges76 silver badges107 bronze badges

2

Tôi không chắc câu hỏi đầu tiên của bạn là gì, nhưng nếu bạn muốn lưu từ điển vào tệp, bạn nên sử dụng thư viện

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
3. Tra cứu tài liệu về tải và đặt các chức năng.

Francesco Boi

7.51412 Huy hiệu vàng69 Huy hiệu bạc109 Huy hiệu đồng12 gold badges69 silver badges109 bronze badges

Đã trả lời ngày 5 tháng 10 năm 2013 lúc 18:43Oct 5, 2013 at 18:43

JohnjohnJohn

5613 Huy hiệu bạc10 Huy hiệu đồng3 silver badges10 bronze badges

3

Tôi sẽ khuyên bạn nên lưu dữ liệu của bạn bằng định dạng JSON thay vì định dạng Pickle vì các tệp của JSON có thể đọc được, điều này giúp cho việc gỡ lỗi của bạn dễ dàng hơn vì dữ liệu của bạn nhỏ. Các tệp JSON cũng được sử dụng bởi các chương trình khác để đọc và ghi dữ liệu. Bạn có thể đọc thêm về nó ở đây

Bạn sẽ cần cài đặt mô -đun JSON, bạn có thể làm như vậy với PIP:

pip install json


# To save the dictionary into a file:
json.dump[ data, open[ "myfile.json", 'w' ] ]

Điều này tạo ra một tệp JSON với tên MyFile.

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
0

Điều này đọc và lưu trữ dữ liệu myfile.json trong một đối tượng dữ liệu.

blueseal

2.4656 Huy hiệu vàng26 Huy hiệu bạc40 Huy hiệu đồng6 gold badges26 silver badges40 bronze badges

Đã trả lời ngày 17 tháng 11 năm 2019 lúc 10:45Nov 17, 2019 at 10:45

Đối với một từ điển của các chuỗi như bản bạn đang xử lý, nó có thể được thực hiện chỉ bằng khả năng xử lý văn bản tích hợp của Python.

[Lưu ý điều này sẽ không hoạt động nếu các giá trị là một cái gì đó khác.]

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
1

Đã trả lời ngày 5 tháng 10 năm 2013 lúc 22:22Oct 5, 2013 at 22:22

Martineaumartineaumartineau

Huy hiệu vàng 115K2525 gold badges160 silver badges284 bronze badges

2

Đã hỏi ngày 5 tháng 10 năm 2013 lúc 18:34

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
2

Python có mô -đun dưa chua chỉ cho loại điều này.

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
3

Các chức năng này là tất cả những gì bạn cần để lưu và tải hầu hết mọi đối tượng:May 10, 2021 at 22:55

Gary02127Gary02127Gary02127

Để lưu bộ sưu tập Python, có mô -đun kệ.1 gold badge23 silver badges28 bronze badges

Đã trả lời ngày 5 tháng 10 năm 2013 lúc 18:50

Zahzah

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
4

5,8231 Huy hiệu vàng21 Huy hiệu bạc34 Huy hiệu đồng

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
5

Pickle có lẽ là lựa chọn tốt nhất, nhưng trong trường hợp mọi người tự hỏi làm thế nào để lưu và tải từ điển vào một tệp bằng cách sử dụng Numpy:

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
6

FYI: Trình xem tệp NPYOct 5, 2013 at 18:59

1551 Huy hiệu bạc7 Huy hiệu đồngmguijarr

Đã trả lời ngày 26 tháng 8 năm 2015 lúc 0:055 gold badges43 silver badges71 bronze badges

2

Chúng tôi cũng có thể sử dụng mô -đun

def change[mdict,b,c,d,e]:
    a=input['ID']
    if a in mdict:
        d= str[input['phone']]
        mdict[a]=b+':'+c+':'+d
    else:
        print['not']
3 trong trường hợp khi từ điển hoặc một số dữ liệu khác có thể dễ dàng được ánh xạ tới định dạng JSON.

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
7

Giải pháp này mang lại nhiều lợi ích, ví dụ như hoạt động cho Python 2.x và Python 3.x ở dạng không thay đổi và ngoài ra, dữ liệu được lưu ở định dạng JSON có thể dễ dàng chuyển giữa nhiều nền tảng hoặc chương trình khác nhau. Dữ liệu này cũng có thể đọc được con người.Nov 7, 2017 at 23:38

Đã trả lời ngày 11 tháng 3 năm 2019 lúc 19:59wordsforthewise

Simhumilecosimhumileco5 gold badges81 silver badges110 bronze badges

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
8

28.6K16 Huy hiệu vàng126 Huy hiệu bạc106 Huy hiệu Đồng

mdict={}
for line in file:
    x=line.split[':']
    a=x[0]
    b=x[1]
    c=x[2]
    d=x[3]
    e=b+':'+c+':'+d

    mdict[a]=e
9

Lưu và tải Dict vào Tệp:Feb 18, 2021 at 6:10

Một từ điển Python có thể được lưu dưới dạng tệp CSV không?

Trong Python để chuyển đổi một từ điển sang CSV sử dụng phương thức DictWriter []. Phương pháp này được sử dụng để chèn dữ liệu vào tệp CSV. Trong Python, mô -đun CSV lưu trữ phương thức DictWriter []. Nó tạo ra một đối tượng và hoạt động như DictWriter [].. This method is used to insert data into the CSV file. In Python, the CSV module stores the dictwriter[] method. It creates an object and works like the dictwriter[].

Làm cách nào để lưu tệp từ điển?

kết xuất [] để lưu từ điển vào một tệp ở định dạng có thể đọc được của con người.Gọi mở [tên tệp, chế độ] với chế độ "W" là Mở tên tệp để viết.Gọi cho JSON.kết xuất [dữ liệu, tệp] để chuyển đổi dữ liệu thành JSON và ghi nó sang tệp.

Làm cách nào để lưu trữ một từ điển lớn trong Python?

Nếu bạn chỉ muốn làm việc với một từ điển lớn hơn bộ nhớ có thể giữ, mô-đun kệ là một giải pháp nhanh chóng và bẩn thỉu.Nó hoạt động giống như một dict trong bộ nhớ, nhưng lưu trữ trên đĩa chứ không phải trong bộ nhớ.Kệ dựa trên cpickle, vì vậy hãy chắc chắn đặt giao thức của bạn thành bất cứ thứ gì khác ngoài 0.the shelve module is a good quick-and-dirty solution. It acts like an in-memory dict, but stores itself on disk rather than in memory. shelve is based on cPickle, so be sure to set your protocol to anything other than 0.

Làm thế nào để bạn đặt một từ điển vào một tệp zip?

Để tạo một từ điển từ hai chuỗi, hãy sử dụng các phương thức Dict [] và Zip [].Dict [zip [khóa, giá trị]] cần tra cứu toàn cầu một lần cho Dict và Zip.Nó không tạo ra các cấu trúc dữ liệu trung gian không cần thiết hoặc đối phó với các tra cứu cục bộ trong các ứng dụng chức năng.use the dict[] and zip[] methods. The dict[zip[keys, values]] needs the one-time global lookup for dict and zip. It doesn't create needless intermediary data structures or deal with local lookups in function applications.

Bài Viết Liên Quan

Chủ Đề