Python lưu trữ dữ liệu dưới dạng JSON như thế nào?

Đây chỉ là một gợi ý bổ sung về cách sử dụng json.dumps [đây không phải là câu trả lời cho vấn đề của câu hỏi, mà là một mẹo dành cho những người phải kết xuất các loại dữ liệu khó hiểu]

Nếu có các loại dữ liệu NumPy trong từ điển, thì json.dumps[] cần một tham số bổ sung, các khoản tín dụng sẽ chuyển đến TypeError. Đối tượng thuộc loại 'ndarray' không thể tuần tự hóa JSON và nó cũng sẽ sửa các lỗi như TypeError: Object of type int64 is not JSON serializable, v.v.

class NumpyEncoder[json.JSONEncoder]:
    """ Special json encoder for np types """
    def default[self, obj]:
        if isinstance[obj, [np.int_, np.intc, np.intp, np.int8,
                            np.int16, np.int32, np.int64, np.uint8,
                            np.uint16, np.uint32, np.uint64]]:
            return int[obj]
        elif isinstance[obj, [np.float_, np.float16, np.float32,
                              np.float64]]:
            return float[obj]
        elif isinstance[obj, [np.ndarray,]]:
            return obj.tolist[]
        return json.JSONEncoder.default[self, obj]

Và sau đó chạy

import json

#print[json.dumps[my_data[:2], indent=4, cls=NumpyEncoder]]]
with open[my_dir+'/my_filename.json', 'w'] as f:
    json.dumps[my_data, indent=4, cls=NumpyEncoder]]]

Bạn cũng có thể muốn trả về một chuỗi thay vì một danh sách trong trường hợp np. array[] vì các mảng được in dưới dạng danh sách trải rộng trên các hàng, điều này sẽ làm tăng đầu ra nếu bạn có nhiều hoặc nhiều mảng. báo trước. việc truy cập các mục từ từ điển bị đổ sau đó sẽ khó khăn hơn để lấy lại chúng dưới dạng mảng ban đầu. Tuy nhiên, nếu bạn không phiền khi chỉ có một chuỗi của một mảng, điều này làm cho từ điển dễ đọc hơn. Sau đó trao đổi

Trong bài viết này tôi muốn tập trung vào một loại định dạng được gọi là JSON. Tôi khá chắc chắn rằng bạn đã từng nghe nói về JSON trước đây. Nhưng nếu không, hãy để tôi mô tả ngắn gọn về JSON cho bạn

JSON là Ký hiệu đối tượng JavaScript và được lấy cảm hứng từ tập hợp con của ngôn ngữ lập trình JS xử lý cú pháp nghĩa đen của đối tượng. Tuy nhiên, trong khi đó ngôn ngữ bất khả tri có nghĩa là không thành vấn đề nếu bạn không viết JavaScript. Bạn có thể xử lý dữ liệu được định dạng JSON bằng bất kỳ ngôn ngữ lập trình nào khác

Nhưng tại sao JSON lại quan trọng với bạn, bạn quan tâm đến khoa học dữ liệu phải không? . Sau đó nhiều hơn về điều đó. [Tiết diện. “Real World?”] Vì vậy, nếu bạn đang trên hành trình giống như tôi và bạn muốn tìm hiểu một công cụ hữu ích khác. Bài viết này là dành cho bạn. Ngay cả khi bạn đang ở một giai đoạn khác trong sự nghiệp của mình, tôi tin chắc rằng vì tiêu đề đã thu hút sự chú ý của bạn nên bạn muốn làm mới kiến ​​thức của mình về định dạng JSON để giải quyết vấn đề hiện tại hoặc bạn tìm kiếm một kỹ năng mới trong kho vũ khí trăn khoa học dữ liệu của mình

JSON trông như thế nào

Được rồi, JSON trông như thế nào và nó hỗ trợ những gì?

Đây là tập tin example.json

Như bạn có thể thấy, nó hỗ trợ các kiểu nguyên thủy như chuỗi, số nguyên cũng như danh sách và đối tượng lồng nhau. Và có vẻ như Python. Nhưng hãy chú ý, tôi đã cung cấp bảng chuyển đổi đọc và chuyển đổi ghi để bạn được thông báo về sự khác biệt giữa JSON và python

Tại sao lưu trữ dữ liệu trong Python bằng mô-đun JSON?
  1. Định dạng JSON cho phép các lập trình viên kết xuất các cấu trúc dữ liệu đơn giản vào một tệp và tải lại chúng vào các chương trình khi cần
  2. Dữ liệu có thể được chia sẻ giữa các chương trình của ngôn ngữ khác bằng các tệp được định dạng JSON

Vì ưu điểm của định dạng JSON đến từ việc lưu trữ và lấy dữ liệu nên bài viết này chia sẻ với bạn các hàm và ví dụ để lần sau khi bạn muốn xử lý dữ liệu, các kỹ năng về định dạng JSON sẽ sẵn sàng cho bạn sử dụng

Nếu bạn muốn có thêm các bài viết về chủ đề này, điều cần thiết là bạn phải biết một số từ vựng. Việc mã hóa dữ liệu thành JSON được gọi là tuần tự hóa [dữ liệu được lưu trữ dưới dạng chuỗi byte]. Quá trình ngược lại để lấy dữ liệu từ tệp có định dạng JSON được gọi là giải tuần tự hóa. Nhưng tôi nghĩ không cần thiết phải biết điều đó đối với các nhiệm vụ cơ bản. Vì vậy, bây giờ chúng ta hãy bắt đầu thực hiện một số kinh nghiệm

Dữ liệu thành json — Tuần tự hóa

Hãy tưởng tượng bạn xây dựng một chương trình tạo dữ liệu nhưng bạn cũng muốn chia sẻ dữ liệu và thông tin cơ bản cho những người dùng/chương trình khác. Đây là lý do tại sao bạn muốn lấy dữ liệu và lưu trữ nó trong tệp có định dạng JSON. Nhưng dữ liệu được dịch như thế nào?

bảng của tác giả

Được rồi, bây giờ chúng ta biết những gì chúng ta có thể mong đợi từ việc chuyển đổi trong quá trình lưu trữ, chúng ta có thể xem xét các chức năng đi kèm với gói json tích hợp

import json

Chúng tôi có hai hàm trong thư viện json có tên là json.dump[]json.dumps[] có thể được sử dụng để tuần tự hóa

Hãy nhìn vào một lúc

json. dump[] lưu trữ đối tượng dữ liệu dưới dạng chuỗi JSON trong. tập tin json

Hàm json.dump[data, file_object] nhận hai đối số

  1. Dữ liệu cần được ghi vào tệp JSON
  2. Một đối tượng tệp có thể được sử dụng để lưu dữ liệu

thí dụ. json trông giống như sau

json. dumps[] chuyển đổi đối tượng python thành chuỗi JSON

Nó khá đơn giản

JSON thành dữ liệu - Giải tuần tự hóa

Tương tự, deserialization là quá trình chuyển đổi dữ liệu JSON thành kiểu dữ liệu gốc. Ở đây, chúng tôi chuyển đổi dữ liệu JSON trở lại từ điển trong Python. Nhưng một lần nữa chúng ta phải xem xét bảng chuyển đổi cho Python để nhận thức được những sai lầm có thể xảy ra

bảng của tác giả

Và hãy xem, nếu chúng ta mã hóa một bộ dữ liệu, nó sẽ trở thành một mảng và một mảng sẽ trở thành một danh sách. Xin hãy nhớ điều này

Tiếp theo, chúng tôi muốn kiểm tra cả hai chức năng được sử dụng để khử lưu huỳnh

json. load[] đọc các tệp json thành các loại python

import json

#print[json.dumps[my_data[:2], indent=4, cls=NumpyEncoder]]]
with open[my_dir+'/my_filename.json', 'w'] as f:
    json.dumps[my_data, indent=4, cls=NumpyEncoder]]]
0

Dữ liệu đến từ tệp example.json và được lưu trữ trong từ điển có tên là dữ liệu

json. loading[] chuyển đổi chuỗi json thành loại python

Thế giới thực?

Tôi đã đề cập trong phần giới thiệu rằng tôi tình cờ gặp JSON trong khi xây dựng dự án python của riêng mình để cố gắng tìm kiếm một công việc kỹ sư máy học/khoa học dữ liệu. Mục tiêu của tôi là lưu trữ dữ liệu mà tôi đã thu thập từ API vào một tệp để sau này tôi có thể sử dụng nó để kiểm tra. Việc nhận dữ liệu từ API dưới dạng chuỗi json khá phổ biến. Với thư viện có tên là

import json

#print[json.dumps[my_data[:2], indent=4, cls=NumpyEncoder]]]
with open[my_dir+'/my_filename.json', 'w'] as f:
    json.dumps[my_data, indent=4, cls=NumpyEncoder]]]
2, bạn có thể lấy dữ liệu từ API. Sau đó, bạn cần chuyển đổi dữ liệu thành một đối tượng python, điều này có thể dễ dàng thực hiện chỉ cần sử dụng
import json

#print[json.dumps[my_data[:2], indent=4, cls=NumpyEncoder]]]
with open[my_dir+'/my_filename.json', 'w'] as f:
    json.dumps[my_data, indent=4, cls=NumpyEncoder]]]
3 mà không cần bất kỳ đối số nào

Bây giờ, hãy tưởng tượng bạn thực hiện một số tranh luận và quyết định lấy một tập hợp con dữ liệu và muốn lưu trữ nó để sử dụng sau này. Bạn đã biết rằng bạn có thể sử dụng

import json

#print[json.dumps[my_data[:2], indent=4, cls=NumpyEncoder]]]
with open[my_dir+'/my_filename.json', 'w'] as f:
    json.dumps[my_data, indent=4, cls=NumpyEncoder]]]
4 và có sẵn nó để sử dụng sau này. Ừ

Sự kết luận

Rất vui vì bạn đã học cách lưu trữ dữ liệu theo cách có thể quản lý được khá phổ biến với nhiều ngôn ngữ khác. Bạn cũng biết nơi để tra cứu các bảng chuyển đổi và bạn đã thấy một số ví dụ mà bạn có thể thay đổi mà không cần nỗ lực nhiều để chúng hữu ích cho nhu cầu của bạn. Tôi đã tóm tắt các bước chính của quy trình làm việc trong 4 điểm sau

Dữ liệu được lưu trữ trong JSON như thế nào?

JSON cho phép nhà phát triển lưu trữ các loại dữ liệu khác nhau dưới dạng mã mà con người có thể đọc được, với các khóa đóng vai trò là tên và các giá trị chứa dữ liệu liên quan. Cú pháp JSON được bắt nguồn từ cú pháp ký hiệu đối tượng JavaScript. Dữ liệu ở dạng cặp khóa/giá trị . Dữ liệu được phân tách bằng dấu phẩy .

Python chuyển dữ liệu vào URL JSON như thế nào?

Đăng JSON bằng Thư viện yêu cầu Python. Để đăng JSON lên máy chủ bằng Thư viện yêu cầu Python, hãy gọi các yêu cầu. phương thức post[] và chuyển URL đích làm tham số đầu tiên và dữ liệu JSON với tham số json=. Tham số json= lấy một từ điển và tự động chuyển đổi nó thành một chuỗi JSON.

Python lưu trữ phản hồi API dưới dạng JSON như thế nào?

Làm cách nào để lưu phản hồi JSON bằng Python? .
yêu cầu nhập khẩu
# có hàm tạo json[] sẵn có cho các yêu cầu. phương thức nhận []
json_data = yêu cầu
in [json_data]
# Để thực sự ghi dữ liệu vào tệp, chúng ta chỉ cần gọi hàm dump[] từ thư viện json
nhập json

Python có thể tạo tệp JSON không?

Một ví dụ tuần tự hóa đơn giản . Using Python's context manager, you can create a file called data_file. json và mở nó ở chế độ ghi.

Chủ Đề