Cập nhật tệp json trong python

Để cập nhật một đối tượng JSON trong một tệp, hãy nhập thư viện json, đọc tệp bằng json.load[file], thêm mục nhập mới vào danh sách hoặc cấu trúc dữ liệu từ điển data và viết đối tượng JSON được cập nhật bằng json.dump[data, file]

Cụ thể, đây là bốn bước cụ thể để cập nhật tệp JSON hiện có bằng một mục nhập mới

  1. Nhập thư viện json với
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    0
  2. Đọc tệp JSON trong cấu trúc dữ liệu bằng cách sử dụng
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    1 sau khi mở tệp bằng
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    2 ở chế độ đọc
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    3. Tại thời điểm này, bạn có dữ liệu JSON trong mã Python của mình dưới dạng từ điển hoặc danh sách [tùy thuộc vào cách dữ liệu của bạn trông như thế nào—xem bảng chuyển đổi bên dưới]
  3. Cập nhật cấu trúc dữ liệu Python với mục nhập mới [e. g. , một từ điển mới để thêm vào danh sách]
  4. Viết JSON đã cập nhật data trở lại tệp JSON bằng cách sử dụng json.dump[data, file] sau khi mở tệp ở chế độ ghi bằng cách sử dụng
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    6
import json

filename = 'your_file.json'
entry = {'carl': 33}

# 1. Read file contents
with open[filename, "r"] as file:
    data = json.load[file]

# 2. Update json object
data.append[entry]

# 3. Write json file
with open[filename, "w"] as file:
    json.dump[data, file]

Trên thực tế, khi sử dụng phương thức

import json

filename = 'your_file.json'
entry = {'carl': 33}

# 1. Read file contents
with open[filename, "r"] as file:
    data = json.load[file]

# 2. Update json object
data.append[entry]

# 3. Write json file
with open[filename, "w"] as file:
    json.dump[data, file]
7, đối tượng Python trả về được chuyển đổi từ định dạng JSON bằng cách sử dụng

JSONPythonobjectdictarrayliststringstrnumber [int]intnumber [real]floattrueTruefalseFalsenullNone

Để hiểu rõ hơn về các cấu trúc dữ liệu quan trọng nhất, chẳng hạn như từ điển Python, bạn có thể muốn xem Học viện Khoa học Máy tính Finxter

Hướng dẫn cơ bản về từ điển trong Python

Khóa học miễn phí cho tất cả các thành viên cao cấp của Finxter

Phương pháp 2. Chỉ mở tệp một lần bằng cách đặt lại con trỏ tệp

Thay vì mở đối tượng tệp hai lần, bạn chỉ có thể mở nó một lần và đặt lại con trỏ tệp bằng cách sử dụng

import json

filename = 'your_file.json'
entry = {'carl': 33}

# 1. Read file contents
with open[filename, "r"] as file:
    data = json.load[file]

# 2. Update json object
data.append[entry]

# 3. Write json file
with open[filename, "w"] as file:
    json.dump[data, file]
8 để ghi đè lên nội dung tệp hiện có bằng bốn bước sau

  1. Sử dụng
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    9 để tạo một đối tượng
    import json
    
    filename = 'your_file.json'
    # Old JSON File:
    # [{"alice": 24, "bob": 27}]
    
    entry = {'carl': 33}
    
    with open[filename, "r+"] as file:
        data = json.load[file]
        data.append[entry]
        file.seek[0]
        json.dump[data, file]
    
    # New JSON file: 
    # [{"alice": 24, "bob": 27}, {"carl": 33}]
    0 ở chế độ đọc và viết
    import json
    
    filename = 'your_file.json'
    # Old JSON File:
    # [{"alice": 24, "bob": 27}]
    
    entry = {'carl': 33}
    
    with open[filename, "r+"] as file:
        data = json.load[file]
        data.append[entry]
        file.seek[0]
        json.dump[data, file]
    
    # New JSON file: 
    # [{"alice": 24, "bob": 27}, {"carl": 33}]
    1
  2. Gọi
    import json
    
    filename = 'your_file.json'
    # Old JSON File:
    # [{"alice": 24, "bob": 27}]
    
    entry = {'carl': 33}
    
    with open[filename, "r+"] as file:
        data = json.load[file]
        data.append[entry]
        file.seek[0]
        json.dump[data, file]
    
    # New JSON file: 
    # [{"alice": 24, "bob": 27}, {"carl": 33}]
    2 để tải dữ liệu từ tệp trong mã Python của bạn. Bây giờ, bạn có thể cập nhật dữ liệu trong mã Python của mình. Ví dụ: nếu tệp JSON của bạn được cấu trúc dưới dạng danh sách từ điển, chỉ cần nối thêm một từ điển mới
  3. Sử dụng
    import json
    
    filename = 'your_file.json'
    entry = {'carl': 33}
    
    # 1. Read file contents
    with open[filename, "r"] as file:
        data = json.load[file]
    
    # 2. Update json object
    data.append[entry]
    
    # 3. Write json file
    with open[filename, "w"] as file:
        json.dump[data, file]
    
    8 để đặt lại con trỏ tệp về vị trí 0, vì vậy bạn có thể ghi đè lên nó thay vì nối lại toàn bộ đối tượng JSON
  4. Gọi json.dump[data, file] để ghi đè lên
    import json
    
    filename = 'your_file.json'
    # Old JSON File:
    # [{"alice": 24, "bob": 27}]
    
    entry = {'carl': 33}
    
    with open[filename, "r+"] as file:
        data = json.load[file]
        data.append[entry]
        file.seek[0]
        json.dump[data, file]
    
    # New JSON file: 
    # [{"alice": 24, "bob": 27}, {"carl": 33}]
    0 bằng data

Đây là mã cụ thể

import json

filename = 'your_file.json'
# Old JSON File:
# [{"alice": 24, "bob": 27}]

entry = {'carl': 33}

with open[filename, "r+"] as file:
    data = json.load[file]
    data.append[entry]
    file.seek[0]
    json.dump[data, file]

# New JSON file: 
# [{"alice": 24, "bob": 27}, {"carl": 33}]

Phương pháp 3. Tạo một tệp JSON ban đầu và cập nhật nó sau đó

Nếu bạn chưa có tệp JSON, trước tiên bạn có thể tạo tệp từ danh sách ban đầu như sau

import json

filename = 'your_file.json'
lst = [{'alice': 24, 'bob': 27}]

# Write the initial json object [list of dicts]
with open[filename, mode='w'] as f:
    json.dump[lst, f]

# Append the new dict to the list and overwrite whole file
with open[filename, mode='w'] as f:
    lst.append[{'carl':33}]
    json.dump[lst, f]

Tóm tắt và Thảo luận

Cả ba phương pháp được trình bày trong bài viết này về cơ bản đều sử dụng cùng một ý tưởng. gọi

import json

filename = 'your_file.json'
# Old JSON File:
# [{"alice": 24, "bob": 27}]

entry = {'carl': 33}

with open[filename, "r+"] as file:
    data = json.load[file]
    data.append[entry]
    file.seek[0]
    json.dump[data, file]

# New JSON file: 
# [{"alice": 24, "bob": 27}, {"carl": 33}]
7] để cập nhật tệp có một số dữ liệu. Biến dữ liệu có thể chứa tất cả các định dạng JSON khác nhau, chẳng hạn như danh sách từ điển hoặc từ điển

Nếu trước tiên bạn cần tải dữ liệu từ tệp, hãy sử dụng

import json

filename = 'your_file.json'
# Old JSON File:
# [{"alice": 24, "bob": 27}]

entry = {'carl': 33}

with open[filename, "r+"] as file:
    data = json.load[file]
    data.append[entry]
    file.seek[0]
    json.dump[data, file]

# New JSON file: 
# [{"alice": 24, "bob": 27}, {"carl": 33}]
2 trên đối tượng tệp được mở ở chế độ đọc

Nói chung, việc thêm dữ liệu vào tệp JSON không phải là một ý tưởng hay vì đối với mỗi bản cập nhật nhỏ, bạn phải đọc và phân tích toàn bộ đối tượng tệp. Nếu tệp JSON của bạn có n mục, thì độ phức tạp thời gian chạy của việc cập nhật nó là O[n]

Cách tiếp cận tốt hơn là lưu trữ dữ liệu dưới dạng tệp CSV có thể được đọc từng dòng để đơn giản hóa việc phân tích cú pháp và cập nhật đáng kể bằng cách chỉ thêm một dòng vào tệp có độ phức tạp thời gian chạy không đổi

Cảm ơn bạn đã nghiên cứu bài viết này, vui lòng xem khóa học cheat sheet Python miễn phí của tôi để luôn nhạy bén và cải thiện kỹ năng Python của bạn liên tục, từng ngày. 🙂

Bạn có thể đăng ký miễn phí tại đây

lập trình viên

“Các lập trình viên thực sự đặt các hằng số chung ngay từ đầu sao cho vũ trụ phát triển để chứa đĩa có dữ liệu họ muốn. ” — xkcd

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Làm cách nào để cập nhật tệp JSON trong Python?

Cập nhật đối tượng JSON trong Python cũng đơn giản như sử dụng hàm update[] tích hợp sẵn từ gói json mà chúng ta đã nhập . Phương thức cập nhật được sử dụng để thêm một cặp khóa-giá trị mới vào chuỗi JSON mà chúng tôi đã khai báo trong mã của mình.

Làm cách nào để cập nhật một giá trị trong tệp JSON?

Cách cập nhật giá trị thuộc tính của tệp đối tượng json e. g. ["trạng thái"="thành công"] .
Giải tuần tự hóa json
Truy cập mã thông báo
Cập nhật giá trị

Chúng tôi có thể cập nhật tệp JSON không?

Bạn có thể sử dụng trình soạn thảo văn bản JSON để dễ dàng sửa đổi, định dạng và xác thực các tệp JSON của mình .

Làm cách nào để cập nhật tệp JSON động?

Để làm điều này, bạn sẽ muốn chia mã của mình thành hai phần -- phần phía máy chủ sẽ đọc/cập nhật tệp JSON và phần phía máy khách sẽ là HTML thuần túy và sẽ gửi yêu cầu đến máy chủ

Chủ Đề