Làm cách nào để bạn ghi dữ liệu vào tệp json trong python?

JSON đã trở thành tiêu chuẩn thực tế để trao đổi dữ liệu giữa máy khách và máy chủ. Python có sẵn một gói gọi là json để mã hóa và giải mã dữ liệu JSON. Để đọc và ghi dữ liệu json, chúng ta phải sử dụng gói json. Để xử lý tệp, Python cung cấp nhiều chức năng sẽ thực hiện công việc

Cách tạo tệp JSON trong Python

Để tạo tệp json bằng Python, hãy sử dụng hàm open[]. Hàm open[] lấy tên tệp và chế độ làm đối số. Nếu tệp không có ở đó, thì nó sẽ được tạo

Python With Statement được sử dụng để mở tệp. Bạn nên sử dụng câu lệnh with để làm việc với các tệp vì nó đảm bảo rằng các bộ mô tả tệp đang mở sẽ tự động được đóng lại sau khi quá trình thực thi chương trình rời khỏi ngữ cảnh của câu lệnh with

# app.py

import json

with open['new_file.json', 'w'] as f:
    print["The json file is created"]

Trong mã này, chúng tôi đang cố mở một tệp có tên new_file. json với chế độ w. Tuy nhiên, tệp không tồn tại trong hệ thống tệp, tạo một tệp mới trong cùng một thư mục

Tạo tệp json từ tệp json hiện có trong Python

Để tạo tệp json từ tệp json hiện có, hãy mở tệp hiện có ở chế độ đọc và đọc nội dung của tệp đó, đồng thời sử dụng câu lệnh open[] và with ở chế độ ghi và kết xuất dữ liệu json sang tệp json mới

Giả sử chúng ta có dữ liệu. json tệp hiện có

{
  "data": [
    {
      "color": "red",
      "value": "#f00"
    },
    {
      "color": "green",
      "value": "#0f0"
    },
    {
      "color": "blue",
      "value": "#00f"
    },
    {
      "color": "black",
      "value": "#000"
    }
  ]
}

Bây giờ, chúng ta sẽ tạo một tệp json mới từ dữ liệu này. tập tin json

# app.py

import json

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

with open['new_file.json', 'w'] as f:
    json.dump[data, f, indent=2]
    print["New json file is created from data.json file"]

đầu ra

python3 app.py
New json file is created from data.json file

Vì vậy, về cơ bản, chúng tôi đang đọc tệp json hiện có và tạo một tệp json mới và kết xuất nội dung vào tệp mới này

Phần kết luận

Sử dụng trình quản lý ngữ cảnh của Python, bạn có thể tạo tệp json và mở tệp đó ở chế độ ghi. Các tệp JSON thuận tiện kết thúc bằng một. phần mở rộng json

Để làm việc với các tệp json trong Python

  1. Nhập gói json
  2. Để đọc dữ liệu, sử dụng hàm load[] hoặc loading[]
  3. Sau đó, bạn xử lý dữ liệu
  4. Để thay đổi dữ liệu, hãy sử dụng hàm dump[] hoặc dumps[]

Điều này không phải lúc nào cũng đúng, nhưng có thể bạn sẽ làm theo các bước sau

Đó là để tạo một tệp json trong Python

Facebook

Twitter

Pinterest

WhatsApp

Bài viết trước Cách cài đặt Visual Studio Code trên máy Mac

Bài viết tiếp theo PHP Array Pop. Cách xóa phần tử mảng trong PHP

kranal

https. //appdividend. com/

Krunal Lathiya là Kỹ sư phần mềm với hơn tám năm kinh nghiệm. Anh ấy đã phát triển một nền tảng vững chắc về các nguyên tắc khoa học máy tính và niềm đam mê giải quyết vấn đề. Ngoài ra, Krunal có kiến ​​thức tuyệt vời về Khoa học dữ liệu và Học máy, đồng thời là chuyên gia về Ngôn ngữ Python. Krunal có kinh nghiệm với nhiều ngôn ngữ lập trình và công nghệ khác nhau, bao gồm PHP, R, Golang và JavaScript. Anh ấy cảm thấy thoải mái khi làm việc trong lĩnh vực phát triển front-end và back-end

Để cập nhật một đối tượng JSON trong một tệp, hãy nhập thư viện

# app.py

import json

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

with open['new_file.json', 'w'] as f:
    json.dump[data, f, indent=2]
    print["New json file is created from data.json file"]
2, đọc tệp bằng
# app.py

import json

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

with open['new_file.json', 'w'] as f:
    json.dump[data, f, indent=2]
    print["New json file is created from data.json file"]
3], thêm mục mới vào danh sách hoặc cấu trúc dữ liệu từ điển
# app.py

import json

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

with open['new_file.json', 'w'] as f:
    json.dump[data, f, indent=2]
    print["New json file is created from data.json file"]
4 và viết đối tượng JSON được cập nhật bằng
# app.py

import json

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

with open['new_file.json', 'w'] as f:
    json.dump[data, f, indent=2]
    print["New json file is created from data.json file"]
5

Đặc biệt, đâ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
    # app.py
    
    import json
    
    with open['data.json'] as f:
        data = json.load[f]
    
    with open['new_file.json', 'w'] as f:
        json.dump[data, f, indent=2]
        print["New json file is created from data.json file"]
    
    2 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
    # app.py
    
    import json
    
    with open['data.json'] as f:
        data = json.load[f]
    
    with open['new_file.json', 'w'] as f:
        json.dump[data, f, indent=2]
        print["New json file is created from data.json file"]
    
    4 đã cập nhật trở lại tệp JSON bằng cách sử dụng
    # app.py
    
    import json
    
    with open['data.json'] as f:
        data = json.load[f]
    
    with open['new_file.json', 'w'] as f:
        json.dump[data, f, indent=2]
        print["New json file is created from data.json file"]
    
    5 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ở tệp 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 đối tượng
    {
      "data": [
        {
          "color": "red",
          "value": "#f00"
        },
        {
          "color": "green",
          "value": "#0f0"
        },
        {
          "color": "blue",
          "value": "#00f"
        },
        {
          "color": "black",
          "value": "#000"
        }
      ]
    }
    30 ở chế độ đọc và ghi
    {
      "data": [
        {
          "color": "red",
          "value": "#f00"
        },
        {
          "color": "green",
          "value": "#0f0"
        },
        {
          "color": "blue",
          "value": "#00f"
        },
        {
          "color": "black",
          "value": "#000"
        }
      ]
    }
    31
  2. Gọi
    {
      "data": [
        {
          "color": "red",
          "value": "#f00"
        },
        {
          "color": "green",
          "value": "#0f0"
        },
        {
          "color": "blue",
          "value": "#00f"
        },
        {
          "color": "black",
          "value": "#000"
        }
      ]
    }
    32 để 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
    # app.py
    
    import json
    
    with open['data.json'] as f:
        data = json.load[f]
    
    with open['new_file.json', 'w'] as f:
        json.dump[data, f, indent=2]
        print["New json file is created from data.json file"]
    
    5 để ghi đè lên
    {
      "data": [
        {
          "color": "red",
          "value": "#f00"
        },
        {
          "color": "green",
          "value": "#0f0"
        },
        {
          "color": "blue",
          "value": "#00f"
        },
        {
          "color": "black",
          "value": "#000"
        }
      ]
    }
    30 bằng
    # app.py
    
    import json
    
    with open['data.json'] as f:
        data = json.load[f]
    
    with open['new_file.json', 'w'] as f:
        json.dump[data, f, indent=2]
        print["New json file is created from data.json file"]
    
    4

Đây là mã cụ thể

{
  "data": [
    {
      "color": "red",
      "value": "#f00"
    },
    {
      "color": "green",
      "value": "#0f0"
    },
    {
      "color": "blue",
      "value": "#00f"
    },
    {
      "color": "black",
      "value": "#000"
    }
  ]
}
3

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

{
  "data": [
    {
      "color": "red",
      "value": "#f00"
    },
    {
      "color": "green",
      "value": "#0f0"
    },
    {
      "color": "blue",
      "value": "#00f"
    },
    {
      "color": "black",
      "value": "#000"
    }
  ]
}
9

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

{
  "data": [
    {
      "color": "red",
      "value": "#f00"
    },
    {
      "color": "green",
      "value": "#0f0"
    },
    {
      "color": "blue",
      "value": "#00f"
    },
    {
      "color": "black",
      "value": "#000"
    }
  ]
}
37] để 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

{
  "data": [
    {
      "color": "red",
      "value": "#f00"
    },
    {
      "color": "green",
      "value": "#0f0"
    },
    {
      "color": "blue",
      "value": "#00f"
    },
    {
      "color": "black",
      "value": "#000"
    }
  ]
}
32 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 để ghi dữ liệu vào tệp JSON trong Python?

Phương pháp 2. Viết JSON vào một tệp bằng Python bằng cách sử dụng json. kết xuất [] . Phương thức dump[] Gói JSON có chức năng “dump” trực tiếp ghi từ điển vào một tệp ở dạng JSON mà không cần chuyển đổi nó thành một đối tượng JSON thực.

Làm cách nào để chèn dữ liệu vào tệp JSON?

4 câu trả lời .
Truy xuất tệp nguồn chứa JSON
Đọc nội dung văn bản [dữ liệu JSON] từ tệp nguồn
Giải tuần tự hóa dữ liệu JSON thành Danh sách đối tượng sinh viên
Thêm mới danh sách học sinh sinh viên
Nối tiếp danh sách sinh viên, bạn sẽ nhận được chuỗi dữ liệu JSON khi trả về từ phương thức đó
Lưu chuỗi JSON vào tệp nguồn

Chủ Đề