Mảng python vào tệp json

Bạn ở đây vì khi bạn cố gắng mã hóa/xếp thứ tự mảng NumPy thành định dạng JSON, bạn đã nhận được TypeError.

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
8. Trong bài viết này, tôi sẽ chỉ cho bạn cách làm cho mảng NumPy có thể tuần tự hóa JSON để bạn có thể chuyển đổi bất kỳ mảng NumPy nào thành dữ liệu có định dạng JSON

Như bạn đã biết Mô-đun json tích hợp của Python chỉ có thể xử lý các loại nguyên thủy có JSON trực tiếp tương đương (e. g. , từ điển, danh sách, chuỗi, Số, Không có, v.v. ). Để tuần tự hóa mảng nhiều chiều thành JSON, Chúng ta cần viết Bộ mã hóa JSON tùy chỉnh

Đọc thêm

  • Giải Bài tập JSON của Python để thực hành các kỹ năng JSON của Python

Mảng python vào tệp json
Mảng python vào tệp json
Giải thích cách tuần tự hóa mảng NumPy thành JSON

Bộ mã hóa JSON tùy chỉnh để tuần tự hóa NumPy ndarray

Mô-đun json của Python có lớp

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
9, chúng ta có thể mở rộng nó để có thêm đầu ra tùy chỉnh. tôi. e. , bạn sẽ phải phân lớp JSONEncoder để bạn có thể triển khai tuần tự hóa JSON NumPy tùy chỉnh

Khi chúng tôi mở rộng lớp JSONEncoder, chúng tôi sẽ mở rộng phạm vi mã hóa JSON của nó bằng cách ghi đè phương thức

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
0 sẽ được sử dụng khi chúng tôi thực thi
Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
1

Sử dụng

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
2
Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
3 của json. bãi () và json. dumps() để gọi Bộ mã hóa JSON tùy chỉnh của chúng tôi, sẽ chuyển đổi mảng NumPy thành dữ liệu có định dạng JSON

Thí dụ.

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
4

Để tuần tự hóa mảng Numpy thành JSON, chúng ta cần chuyển đổi nó thành cấu trúc danh sách bằng cách sử dụng hàm

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
5. Hãy xem bản demo

Mã hóa và giải mã mảng NumPy đến và từ JSON

Trong ví dụ này, chúng tôi cố gắng tuần tự hóa Mảng NumPy thành Chuỗi JSON

import json
from json import JSONEncoder
import numpy

class NumpyArrayEncoder(JSONEncoder):
    def default(self, obj):
        if isinstance(obj, numpy.ndarray):
            return obj.tolist()
        return JSONEncoder.default(self, obj)

numpyArrayOne = numpy.array([[11, 22, 33], [44, 55, 66], [77, 88, 99]])

# Serialization
numpyData = {"array": numpyArrayOne}
encodedNumpyData = json.dumps(numpyData, cls=NumpyArrayEncoder)  # use dump() to write array into file
print("Printing JSON serialized NumPy array")
print(encodedNumpyData)

# Deserialization
print("Decode JSON serialized NumPy array")
decodedArrays = json.loads(encodedNumpyData)

finalNumpyArray = numpy.asarray(decodedArrays["array"])
print("NumPy Array")
print(finalNumpyArray)

đầu ra

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]

Ghi chú. Chúng tôi đã sử dụng

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
6 để chuyển đổi dữ liệu thành mảng NumPy

Mã hóa mảng NumPy thành JSON và viết nó vào một tệp

Trong hầu hết các trường hợp, chúng tôi cần lưu trữ mảng NumPy được tuần tự hóa JSON vào một tệp để chúng tôi có thể sử dụng nó trong các hệ thống khác nhau

Trong ví dụ này, chúng tôi sẽ làm như sau

  • Chuyển đổi hai mảng NumPy thành JSON và ghi nó vào tệp JSON
  • Đọc tệp JSON chứa mảng NumPy được tuần tự hóa JSON và chuyển đổi nó thành Mảng NumPy thực tế
import numpy
from json import JSONEncoder
import json

class NumpyArrayEncoder(JSONEncoder):
    def default(self, obj):
        if isinstance(obj, numpy.ndarray):
            return obj.tolist()
        return JSONEncoder.default(self, obj)

numpyArrayOne = numpy.array([[11 ,22, 33], [44, 55, 66], [77, 88, 99]])
numpyArrayTwo = numpy.array([[51, 61, 91], [121 ,118, 127]])

# Serialization
numpyData = {"arrayOne": numpyArrayOne, "arrayTwo": numpyArrayTwo}
print("serialize NumPy array into JSON and write into a file")
with open("numpyData.json", "w") as write_file:
    json.dump(numpyData, write_file, cls=NumpyArrayEncoder)
print("Done writing serialized NumPy array into file")

# Deserialization
print("Started Reading JSON file")
with open("numpyData.json", "r") as read_file:
    print("Converting JSON encoded data into Numpy array")
    decodedArray = json.load(read_file)

    finalNumpyArrayOne = numpy.asarray(decodedArray["arrayOne"])
    print("NumPy Array One")
    print(finalNumpyArrayOne)
    finalNumpyArrayTwo = numpy.asarray(decodedArray["arrayTwo"])
    print("NumPy Array Two")
    print(finalNumpyArrayTwo)

đầu ra

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
0

Mảng python vào tệp json
Mảng python vào tệp json
Tệp mảng numpy được tuần tự hóa JSON

Mã hóa chính xác tất cả các loại NumPy thành JSON

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
1

đầu ra

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
2

Sử dụng phương thức panads to_json để tuần tự hóa NumPy ndarray thành JSON

Nếu bạn sử dụng gấu trúc để thao tác dữ liệu, bạn có thể sử dụng chức năng

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
7 trên Sê-ri.
Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
8 chuyển đổi đối tượng thành chuỗi JSON. chúng ta có thể truyền mảng NumPy cho nó để lấy biểu diễn JSON

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
5

đầu ra

Printing JSON serialized NumPy array
{"array": [[11, 22, 33], [44, 55, 66], [77, 88, 99]]}

Decode JSON serialized NumPy array
NumPy Array
[[11 22 33]
 [44 55 66]
 [77 88 99]]
6

Vậy bạn nghĩ như thế nào?

Tôi muốn nghe từ bạn. Bạn nghĩ gì về bài viết này? . Dù bằng cách nào, hãy cho tôi biết bằng cách để lại nhận xét bên dưới

Ngoài ra, hãy thử giải Bài tập JSON của Python để hiểu rõ hơn về Làm việc với Dữ liệu JSON trong Python

Làm cách nào để tải tệp JSON bằng Python?

json. trọng tải (). json. load() chấp nhận đối tượng tệp, phân tích cú pháp dữ liệu JSON, điền dữ liệu vào từ điển Python và trả lại cho bạn. Thí dụ. Giả sử tệp JSON trông như thế này

Làm cách nào để chuyển đổi mảng NumPy thành JSON Python?

Chuyển đổi mảng NumPy thành JSON Python Trong Chương trình Python này, Chúng tôi đã xác định một NumpyEncoder (), Tham số đầu tiên cho json. dump() là mảng Numpy (myarr) và Tham số thứ hai là và chúng ta gán hàm NumpyEncoder cho default=NumpyEncoder. Hãy để chúng tôi hiểu với Ví dụ myarr = np. mảng ( [ ['Jack', 7, 44], ['giá đỡ', 13, 35], ['Sham', 13, 35]])

Làm cách nào để kết xuất dữ liệu từ Python sang JSON trong Python?

Để xử lý luồng dữ liệu trong một tệp, thư viện JSON trong Python sử dụng hàm dump() để chuyển đổi các đối tượng Python thành đối tượng JSON tương ứng của chúng, do đó, việc ghi dữ liệu vào tệp dễ dàng hơn. Các tham số khác nhau có thể được truyền cho phương thức này

Làm cách nào để phân tích tệp JSON trong Java?

Dưới đây là việc thực hiện. json. tải (). Nếu bạn có một chuỗi JSON, bạn có thể phân tích nó bằng cách sử dụng hàm json. phương thức tải (). json. loading() không lấy đường dẫn tệp, nhưng nội dung tệp dưới dạng chuỗi, sử dụng fileobject. đọc () với json. loading() chúng ta có thể trả về nội dung của tập tin