Hướng dẫn store dictionary python - lưu trữ từ điển python

216

Nội dung chính ShowShow

  • Làm thế nào để bạn tải một từ điển trong Python?
  • Làm cách nào để lưu từ điển trong Python?
  • Tôi có thể lưu một từ điển python dưới dạng json không?
  • Làm thế nào để bạn lưu một từ điển dữ liệu?

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.Learn more.
Learn more.

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?

Hướng dẫn store dictionary python - lưu trữ từ điển python

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges25 gold badges160 silver badges285 bronze badges

Đã hỏi ngày 5 tháng 10 năm 2013 lúc 18:34Oct 5, 2013 at 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:50Oct 5, 2013 at 18:50

ZahzahZahZah

5,8331 Huy hiệu vàng21 Huy hiệu bạc34 Huy hiệu đồng1 gold badge21 silver badges34 bronze badges1 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 badges1 silver badge7 bronze badges

Đã trả lời ngày 26 tháng 8 năm 2015 lúc 0:05Aug 26, 2015 at 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.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., 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:59Mar 11, 2019 at 19:59

Simhumilecosimhumilecosimhumilecosimhumileco

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

2

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

memberID:member_name:member_email:member_phone
0

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

JungleJetJungleJetjunglejetjunglejet

2372 Huy hiệu bạc2 Huy hiệu đồng2 silver badges2 bronze badges2 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:

memberID:member_name:member_email:member_phone
1

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

memberID:member_name:member_email:member_phone
2

Đ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:19Oct 14, 2020 at 14:19

Michael Dornermichael DornerMichael DornerMichael Dorner

15.3k11 Huy hiệu vàng77 Huy hiệu bạc107 Huy hiệu đồng11 gold badges77 silver badges107 bronze badges11 gold badges77 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.53412 Huy hiệu vàng69 Huy hiệu bạc109 Huy hiệu đồng12 gold badges69 silver badges109 bronze badges12 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:43Oct 5, 2013 at 18:43

JohnjohnJohnJohn

5613 Huy hiệu bạc10 Huy hiệu đồng3 silver badges10 bronze badges3 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:

memberID:member_name:member_email:member_phone
5

Đ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 badges6 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: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:22Oct 5, 2013 at 22:22

Martineaumartineaumartineaumartineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges25 gold badges160 silver badges285 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:55May 10, 2021 at 22:55

Gary02127Gary02127Gary02127Gary02127

Để lưu bộ sưu tập Python, có mô -đun kệ.1 gold badge23 silver badges28 bronze badges1 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,8331 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:59Oct 5, 2013 at 18:59

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

Đã trả lời ngày 26 tháng 8 năm 2015 lúc 0:055 gold badges43 silver badges71 bronze badges5 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:38Nov 7, 2017 at 23:38

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

Simhumilecosimhumileco5 gold badges81 silver badges110 bronze badges5 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

Đã trả lời ngày 18 tháng 2 năm 2021 lúc 6:10Feb 18, 2021 at 6:10Feb 18, 2021 at 6:10

Làm thế nào để bạn tải một từ điển trong Python?

Chúng ta có thể đọc một từ điển từ một tệp theo 3 cách:...

Sử dụng JSON. Tải () Phương thức: Chuyển đổi chuỗi từ điển hợp lệ thành biểu mẫu JSON ..

Sử dụng AST. Phương pháp literal_eval (): Hàm an toàn hơn hàm đánh giá và có thể được sử dụng để xen kẽ tất cả các loại dữ liệu khác ngoài từ điển ..

Sử dụng dưa chua ..

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

Bạn có thể lưu từ điển của mình vào một tệp văn bản bằng mã bên dưới:...

# Xác định dict ..

dict = {'python': '.py', 'c ++': '.cpp', 'java': '.java'}.

# Mở tệp để viết ..

# Viết tệp ..

# Đóng tập tin..

Tôi có thể lưu một từ điển python dưới dạng json không?

Bạn có thể lưu từ điển Python vào các tệp JSON bằng mô-đun tích hợp JSON.Chúng ta cần sử dụng JSON.phương thức dump () để làm điều này.Sử dụng tham số thụt để ghi lại dữ liệu JSON của bạn.. We need to use json. dump() method to do this. Use the indent parameter to prettyPrint your JSON data.. We need to use json. dump() method to do this. Use the indent parameter to prettyPrint your JSON data.

Làm thế nào để bạn lưu một từ điển dữ liệu?

Bạn có thể sử dụng Model Explorer để lưu các thay đổi cho từ điển dữ liệu bằng cách nhấp chuột phải vào nút cây từ điển trong ngăn phân cấp mô hình và chọn lưu các thay đổi.right-clicking on the dictionary tree node in the Model Hierarchy pane and selecting Save Changes.right-clicking on the dictionary tree node in the Model Hierarchy pane and selecting Save Changes.