Nếu bạn đang tìm cách không thực sự tải tệp, thì việc này với json
không thực sự là cách tiếp cận đúng. Bạn có thể sử dụng tệp được ánh xạ bộ nhớ và không bao giờ thực sự tải tệp vào bộ nhớ-mảng memmap
có thể mở tệp và xây dựng một mảng "trên đĩa" mà không cần tải bất cứ thứ gì vào bộ nhớ.load the file, going about this with json
is not really the right approach. You could use a memory mapped file… and never actually load the file to memory -- a memmap
array can open the file and build an array "on-disk" without loading anything into memory.
Tạo một mảng Dicts ánh xạ bộ nhớ:
>>> import numpy as np
>>> a = np.memmap['mydict.dat', dtype=object, mode='w+', shape=[4,]]
>>> a[0] = {'name':"Joe", 'data':[1,2,3,4]}
>>> a[1] = {'name':"Guido", 'data':[1,3,3,5]}
>>> a[2] = {'name':"Fernando", 'data':[4,2,6,9]}
>>> a[3] = {'name':"Jill", 'data':[9,1,9,0]}
>>> a.flush[]
>>> del a
Bây giờ hãy đọc mảng, mà không tải tệp:
>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
Nội dung của tệp được tải vào bộ nhớ khi danh sách được tạo, nhưng điều đó không bắt buộc-bạn có thể làm việc với mảng trên đĩa mà không cần tải nó.
>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
Phải mất một lượng thời gian không đáng kể [ví dụ: nano giây] để tạo một mảng được ánh xạ bộ nhớ có thể lập chỉ mục một tệp bất kể kích thước [ví dụ: 100 GB] của tệp.
Cải thiện bài viết
Lưu bài viết
Hình thức đầy đủ của JSON là ký hiệu đối tượng JavaScript. Điều đó có nghĩa là một tệp tập lệnh [thực thi] được tạo bằng văn bản bằng ngôn ngữ lập trình, được sử dụng để lưu trữ và chuyển dữ liệu. Python hỗ trợ JSON thông qua gói tích hợp có tên JSON. Để sử dụng tính năng này, chúng tôi nhập gói JSON trong tập lệnh Python. Văn bản trong JSON được thực hiện thông qua chuỗi trích dẫn có chứa giá trị trong ánh xạ giá trị khóa trong {}. & Nbsp; & nbsp;
Các chức năng được sử dụng: & nbsp; & nbsp;
- json.loads []: hàm json.loads [] có mặt trong mô-đun python tích hợp ‘json. Hàm này được sử dụng để phân tích chuỗi JSON. & NBSP;json.loads[] function is present in python built-in ‘json’ module. This function is used to parse the JSON string.
Cú pháp: tham số JSON.LOADS [JSON_STRING]: Nó lấy chuỗi JSON làm tham số.return loại: nó trả về đối tượng từ điển Python. & Nbsp; & nbsp; json.loads[json_string]
Parameter: It takes JSON string as the parameter.
Return type: It returns the python dictionary object.
- json.dumps []: hàm json.dumps [] có mặt trong mô-đun python tích hợp ‘json. Hàm này được sử dụng để chuyển đổi đối tượng Python thành Chuỗi JSON. & NBSP;json.dumps[] function is present in python built-in ‘json’ module. This function is used to convert Python object into JSON string.
Cú pháp: json.dumps [Đối tượng] Tham số: Nó lấy đối tượng Python làm tham số.return loại: nó trả về chuỗi JSON. & Nbsp; & nbsp; json.dumps[object]
Parameter: It takes Python Object as the parameter.
Return type: It returns the JSON string.
- CẬP NHẬT []: Phương thức này cập nhật từ điển với các phần tử từ một đối tượng từ điển khác hoặc từ một cặp khóa/giá trị có thể lặp lại. & NBSP; This method updates the dictionary
with elements from another dictionary object or from an iterable key/value pair.
Cú pháp: Dict.Update [[Khác]] Tham số: Lấy một từ điển khác hoặc một cặp khóa/giá trị có thể lặp lại. dict.update[[other]]
Parameters: Takes another dictionary or an iterable key/value pair.
Return type: Returns None.
Ví dụ 1: Cập nhật chuỗi JSON. & NBSP; & NBSP; Updating a JSON string.
Python3
import
json
________ 7 ________ 8 & nbsp; '{
>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
0____111121213>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
4>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
5>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
1>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
7>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
3>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
4>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
0>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
1>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
2>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
3>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
4=
>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
6>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
7>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
1>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
9json
0json
1=
json
3
json
4
json
5json
6
Output:
{Pin Pin Cảnh: 110096, Tổ chức của người Hồi giáo
Ví dụ 2: Cập nhật tệp JSON. Giả sử tệp JSON trông như thế này. & NBSP; Updating a
JSON file. Suppose the JSON file looks like this.
Chúng tôi muốn thêm một dữ liệu JSON khác sau EMP_DETAILS. Dưới đây là việc thực hiện.
Python3
import
json
json
9 memmap
0=
memmap
2memmap
3
memmap
4memmap
5memmap
6memmap
7memmap
8memmap
9import
0
>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
1>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
4import
3=
import
5import
0import
7>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
4import
9json
0json
1>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
4import
0json
4json
5import
7>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
4json
8import
0x
0=
x
2import
7>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
4=
>>> a.tolist[]
[{'data': [1, 2, 3, 4], 'name': 'Joe'}, {'data': [1, 3, 3, 5], 'name': 'Guido'}, {'data': [4, 2, 6, 9], 'name': 'Fernando'}, {'data': [9, 1, 9, 0], 'name': 'Jill'}]
6x
7___=
1=
2=
3=
4
>>> a = np.memmap['mydict.dat', dtype=object, mode='r']
3=
1=
7=
3=
9
memmap
4json
0
'{
2
Output: