Làm cách nào để thay thế một giá trị trong tệp json bằng python?

Trong hướng dẫn này, bạn sẽ học các kỹ thuật xử lý JSON khác nhau như tải các đối tượng JSON, viết, sắp xếp JSON hoặc phân tích cú pháp JSON, v.v.

JSON là viết tắt của Ký hiệu đối tượng JavaScript đại diện cho dữ liệu có cấu trúc. Dữ liệu JSON được sử dụng để trao đổi thông tin

Trong Python, chúng ta có thể sử dụng JSON bằng cách nhập mô-đun Python tích hợp có tên là json. Mô-đun json mã hóa và giải mã dữ liệu JSON

 

Mục lục

1
  • Tại sao lại sử dụng JSON?
  • Đọc tệp JSON
  • Nhận giá trị JSON
  • Cập nhật & Xóa đối tượng JSON
  • Sắp xếp JSON
  • Tạo các đối tượng JSON
  • Viết JSON vào tệp
  • Phân tích cú pháp JSON
  • Đối tượng với JSON
  • JSON để phản đối
  • Byte sang JSON
  • Chuyển đổi HTML sang JSON
  • JSON sang SQL
  • Tải JSON[] VS tải[]
  • Kết xuất JSON[] VS tải[]

 

Tại sao lại sử dụng JSON?

JSON chứa dữ liệu mà con người và máy móc có thể đọc được. Mục đích chính của việc sử dụng JSON trong Python là lưu trữ và truy xuất danh sách, bộ dữ liệu và từ điển

Hầu hết các API sử dụng định dạng JSON để truyền thông tin. Tương tự, nếu bạn có một tập dữ liệu lớn, bạn có thể mã hóa dữ liệu ở định dạng JSON và lưu trữ trong cơ sở dữ liệu

Cú pháp nạp gói này như sau

cú pháp

import json

 

Đọc tệp JSON

Để đọc dữ liệu từ tệp JSON, chúng ta có thể sử dụng phương thức load[] hoặc loading[]

Đọc dữ liệu JSON trong Python có nghĩa là chuyển đổi đối tượng JSON thành đối tượng Python. Việc chuyển đổi các đối tượng JSON thành các đối tượng Python được gọi là khử tuần tự hóa. Chẳng hạn, một mảng JSON tương đương với một danh sách trong Python

Cú pháp cho load[] được đưa ra dưới đây

cú pháp

data = json.load[object]
  • 'đối tượng' là đối tượng JSON sẽ được tải sau khi câu lệnh được thực thi và sẽ được lưu trữ trong biến 'dữ liệu' dưới dạng đối tượng Python

Hãy xem xét đối tượng JSON sau đây

Mã số

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}

Đoạn mã sau in các giá trị cho khóa 'mảng' bên trong đối tượng JSON của chúng tôi

Mã số

import json
jsonFile = open['jsonData.json']
data = json.load[jsonFile]
print[data]
jsonFile.close[]

đầu ra

Nếu chúng ta có một chuỗi đang lưu trữ đối tượng JSON, chúng ta có thể sử dụng phương thức loading[] để đọc chuỗi đó

cú pháp

data = json.loads[jsonString]

Đoạn mã sau in Chuỗi JSON

Mã số

import json
jsonData = '{"Name": "Hamza", "ID":"12345"}'
data = json.loads[jsonData]
print[data]

đầu ra

 

Nhận giá trị JSON

Các đối tượng JSON được xây dựng theo các cặp khóa-giá trị, giúp việc lấy một giá trị cụ thể từ đối tượng trở nên rất đơn giản. Chúng tôi có thể sử dụng chỉ mục từ điển để truy cập giá trị được liên kết với khóa

cú pháp

data['firstname']

Đoạn mã sau minh họa cách chúng ta có thể sử dụng nó để đạt được kết quả mong muốn

Mã số

import json
jsonFile = open['jsonData.json']
data = json.load[jsonFile]
print[data['firstname']]
jsonFile.close[]

đầu ra

 

Cập nhật & Xóa đối tượng JSON

Cập nhật một đối tượng JSON trong Python cũng đơn giản như sử dụng hàm update[] tích hợp từ gói json mà chúng tôi đã 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. Chúng ta có thể thêm một cặp khóa-giá trị hoặc thêm toàn bộ từ điển sẽ được thêm vào chuỗi JSON trước đó

cú pháp

________số 8

Đoạn mã sau triển khai phương thức update[]

Mã số

import json
jsonData = '{"ID":"123", "Name": "Hamza"}'
data = json.loads[jsonData]
newData = {"DOB": "22-10-2001"}
data.update[newData]
print[data]

đầu ra

Từ điển 'newData' đã được thêm vào đối tượng 'jsonData'. Đây là cách phương thức update[] thực hiện chức năng của nó

Chuyển sang chức năng xóa. Không có chức năng tích hợp trong gói json để xóa cặp khóa-giá trị. Do đó, chúng ta sẽ phải viết thêm một chút mã để thực hiện chức năng này

Đây là cách chúng ta có thể thực hiện xóa trên một đối tượng JSON. Hãy nhớ rằng chúng tôi đang sử dụng cùng một tệp JSON mà chúng tôi đang sử dụng và đã đề cập ở phần đầu của hướng dẫn này

Mã số

data = json.load[object]
0

đầu ra

Chúng ta hãy xem những gì đang thực sự xảy ra ở đây. Khi chúng tôi kiểm tra xem 'firstname' có tồn tại trong từ điển hay không, Python sẽ kiểm tra từ điển và nếu khóa tồn tại, chúng tôi có thể sử dụng từ khóa del để xóa cặp khóa-giá trị đó

 

Sắp xếp JSON

Chúng ta có thể sắp xếp một đối tượng JSON theo thứ tự bảng chữ cái dựa trên các khóa. Để làm điều này, chúng tôi sử dụng json. phương thức dumps[] cùng với một vài đối số cho phương thức. Cú pháp sử dụng phương thức này như sau

cú pháp

data = json.load[object]
1

Ở đây chúng tôi chuyển hai đối số cho hàm json. bãi []. Cái đầu tiên 'dữ liệu' chứa đối tượng JSON mà chúng tôi đã lưu trữ trong một biến Python

Thứ hai là đối số sort_keys, khi được đặt thành True, sắp xếp dữ liệu theo thứ tự bảng chữ cái và trả về đối tượng JSON dưới dạng chuỗi. Đoạn mã sau sử dụng chức năng này

Mã số

data = json.load[object]
2

đầu ra

Nhìn vào mã, khá dễ hiểu chuyện gì đang xảy ra. Đầu tiên, chúng tôi đang tải dữ liệu và lưu trữ nó vào biến 'dữ liệu' và đóng tệp sau đó

Sau đó, trong một câu lệnh, chúng tôi in dữ liệu đã sắp xếp với sự trợ giúp của hàm json. dumps[] và đối số sort_keys=True

 

Tạo các đối tượng JSON

Để tạo một đối tượng JSON, chúng ta cần có một từ điển Python sẽ chứa dữ liệu của chúng ta. Chúng tôi sẽ sử dụng phương pháp tương tự như chúng tôi đã sử dụng trước khi tôi. e. , json. bãi [] và json. tải []. Đoạn mã sau thực hiện chức năng này

Mã số

data = json.load[object]
3

đầu ra

Ở đây chúng tôi định nghĩa một số dữ liệu dưới dạng từ điển Python. Sau đó, chúng tôi sử dụng json. dumps[] và chuyển từ điển Python làm đối số

Điều này chuyển đổi từ điển Python của chúng tôi thành một chuỗi có thể được chuyển đến json. phương thức tải []. Sau đó, json. loading[] chuyển đổi chuỗi này thành Đối tượng JSON và chúng ta có thể thấy đầu ra khi nó được in

 

Viết JSON vào tệp

Để ghi một đối tượng JSON vào tệp JSON, chúng ta có thể sử dụng lệnh json. phương thức đổ []. Phương thức này lấy dữ liệu mà chúng ta sẽ ghi vào tệp và cũng là tệp mà chúng ta sẽ ghi dữ liệu vào. Đoạn mã sau giải thích cách chúng ta có thể làm điều đó

Mã số

data = json.load[object]
4

đầu ra

Đầu tiên ta mở file ở chế độ đọc và lưu trữ nội dung của file vào biến ‘data’. Sau đó, chúng tôi cập nhật 'dữ liệu' và thêm cặp khóa-giá trị mới vào biến này

Sau đó, chúng tôi mở lại tệp ở chế độ ghi. Chúng tôi sử dụng json. dump[] và chuyển nó vào dữ liệu và tệp dưới dạng tham số và đóng tệp sau đó

Đầu ra cho thấy dữ liệu đã được cập nhật và chúng tôi có thể xác nhận điều này bằng cách xem tệp json

 

Phân tích cú pháp JSON

Chúng ta có thể phân tích một chuỗi JSON trong Python bằng cách sử dụng json. phương thức tải []. Phương thức này chuyển đổi chuỗi JSON thành một từ điển Python có thể được lập chỉ mục dựa trên các khóa có trong từ điển

cú pháp

data = json.load[object]
5

Ở đây 'jsonString' là chuỗi JSON được truyền vào phương thức dưới dạng đối số. Phương thức này sẽ phân tích cú pháp chuỗi JSON và trả về một từ điển Python có thể được lưu trữ thêm trong một biến

Chúng ta cũng có thể thực hiện tất cả các phương thức từ điển trên biến này. Đoạn mã sau thực hiện chức năng này

Mã số

data = json.load[object]
6

đầu ra

Trong mã này, chúng tôi đang chuyển chuỗi JSON 'dữ liệu' làm đối số cho phương thức json. loading[] trả về một từ điển được lưu trữ trong biến 'json_data'. Câu lệnh in xác minh rằng phương thức đã chạy thành công

 

Đối tượng với JSON

Các đối tượng Python có thể được chuyển đổi thành JSON bằng cách sử dụng cùng một json. dumps[] mà chúng ta đã thảo luận trước đó. Chúng ta hãy xem làm thế nào điều này sẽ được thực hiện

Mã số

data = json.load[object]
7

đầu ra

Trong mã này, trước tiên chúng ta tạo một lớp Xe hơi và sau đó tạo một đối tượng của lớp này

Sau đó, chúng tôi sẽ sử dụng json. dumps[] và chuyển đối tượng car thành ‘car. __dict__'. '__dict__' chuyển đổi tất cả các biến thành viên thành từ điển và chuyển nó tới json. phương thức bãi []

Như chúng ta có thể thấy từ đầu ra, đối tượng đã được chuyển đổi thành JSON

 

JSON để phản đối

Để chuyển đổi một chuỗi JSON thành một đối tượng Python, chúng ta sẽ cần một lớp có đối tượng mà chúng ta phải tạo và sử dụng json. phương thức loading[] như sau

Mã số

data = json.load[object]
8

đầu ra

Ở đây, chúng tôi đã tải dữ liệu vào biến 'dữ liệu' và sau đó chuyển từ điển này sang lớp ô tô dưới dạng đối số từ khóa. Chúng ta có thể thấy trong đầu ra rằng đối tượng đã được tạo

 

Byte sang JSON

Chuyển đổi một chuỗi byte hoặc từ điển thành JSON rất đơn giản. Chúng ta chỉ cần sử dụng json tích hợp. hàm bãi []

cú pháp

data = json.load[object]
9

Đoạn mã sau minh họa chức năng này

Mã số

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
0

đầu ra

Ở đây, trước tiên chúng tôi đã xác định một chuỗi byte và sau đó giải mã nó thành bộ ký tự 'utf-8'. Sau đó, chúng tôi chỉ cần sử dụng json. dumps[] để chuyển đổi chuỗi thành Chuỗi JSON

 

Chuyển đổi HTML sang JSON

Để chuyển đổi HTML thành một đối tượng JSON, chúng ta sẽ phải sử dụng một gói Python khác có tên là html-to-json. Những gì gói này làm về cơ bản là lấy một tệp HTML và chuyển đổi nó thành một đối tượng JSON

Chúng tôi có thể cài đặt gói này bằng cách sử dụng lệnh sau trong dấu nhắc lệnh hoặc thiết bị đầu cuối của chúng tôi

cú pháp

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
1

Đầu tiên, chúng ta cần nhập nó vào chương trình của mình

cú pháp

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
2

Sau khi nhập, bây giờ chúng ta có thể viết mã của mình để chuyển đổi tệp HTML thành đối tượng JSON. Đây là tệp HTML mẫu mà chúng tôi sẽ sử dụng

Mã số

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
3

Bây giờ, chúng ta sẽ chuyển sang viết mã để chuyển đổi HTML này thành JSON

Mã số

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
4

đầu ra

Trong mã này, chúng tôi sử dụng gói html-to-json để chuyển đổi HTML thành json. Chúng tôi đã sử dụng html_to_json. convert[] cho mục đích này và chuyển chuỗi chứa HTML mong muốn

 

JSON sang SQL

Để chuyển đổi một đối tượng JSON thành một bảng SQL, cần thêm một vài bước so với việc chỉ sử dụng một phương thức duy nhất. Ở đây chúng tôi đang sử dụng hai gói mới mà chúng tôi chưa sử dụng trước đây

Đầu tiên là gói Pandas là một công cụ phân tích dữ liệu. Chúng tôi sẽ sử dụng nó để chuyển đổi đối tượng JSON của chúng tôi thành Khung dữ liệu Pandas

Gói thứ hai là sqlalchemy. Gói này là bộ công cụ cơ sở dữ liệu và trình ánh xạ quan hệ đối tượng [ORM]. Đây là cách chúng tôi nhập có thể nhập các gói này

cú pháp

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
5

Ở đây create_engine là một phương thức giúp chúng ta kết nối với cơ sở dữ liệu SQLite. Đoạn mã sau minh họa chức năng này

Mã số

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
6

Khi chúng tôi chạy mã này, cơ sở dữ liệu có tên 'my_data. db' được tạo. Sau đó, dữ liệu được chèn vào cơ sở dữ liệu dưới tên bảng ‘Sample_Data’

Chúng tôi có thể xác nhận điều này bằng cách chạy các lệnh sau trong dấu nhắc lệnh hoặc thiết bị đầu cuối của chúng tôi

Mã số

{
	"date": "2021-07-17",
	"firstname": "Hamza",
	"lastname": "Sher",
	"city": "Kyoto",
	"array": [
	    "Carmela",
		"Ashlee",
		"Alisha"
	],
	"array of objects": [
		{
			"index": 0,
			"index start at 5": 5
		},
		{
			"index": 1,
			"index start at 5": 6
		},
		{
			"index": 2,
			"index start at 5": 7
		}
	]
}
7

Tùy thuộc vào đối tượng JSON, bạn có thể thấy rằng bảng đã được tạo và dữ liệu đã được chèn vào

 

Tải JSON[] VS tải[]

Sự khác biệt giữa cả hai điều này là với phương thức load[], chúng tôi chuyển tệp JSON làm đối số và sau đó chúng tôi có thể lưu trữ nó trong một biến

Trong khi phương thức loading[] chúng ta chuyển một chuỗi JSON được định nghĩa là một biến Python và tuần tự hóa chuỗi đó thành một đối tượng JSON. Các mẫu mã sau hiển thị chức năng này

Mã số. [trọng tải[]]

import json
jsonFile = open['jsonData.json']
data = json.load[jsonFile]
print[data]
jsonFile.close[]

đầu ra

Mã số. [tải[]]

import json
jsonData = '{"Name": "Hamza", "ID":"12345"}'
data = json.loads[jsonData]
print[data]

đầu ra

 

Kết xuất JSON[] VS tải[]

json. tải [] và json. phương pháp dumps[] là đối lập. json. phương thức loading[] lấy một chuỗi và trả về một đối tượng JSON có thể được sử dụng thêm

Trong khi đó json. Phương thức dumps[] lấy một đối tượng JSON và trả về một chuỗi chứa tất cả dữ liệu

Các mẫu mã sau đây minh họa chức năng này

Mã số

import json
jsonFile = open['jsonData.json']
data = json.load[jsonFile]
print[data]
jsonFile.close[]
0

đầu ra

Tôi hy vọng bạn thích hướng dẫn. Hãy quay lại nhé

  • Chia sẻ trên facebook
  • Tweet trên Twitter

Mokhtar Ebrahim

Mokhtar là người sáng lập LikeGeek. com. Anh ấy làm quản trị viên hệ thống Linux từ năm 2010. Ông chịu trách nhiệm duy trì, bảo mật và khắc phục sự cố máy chủ Linux cho nhiều khách hàng trên khắp thế giới. Anh ấy thích viết các tập lệnh shell và Python để tự động hóa công việc của mình

Làm cách nào để thay thế một giá trị trong JSON bằng Python?

Làm cách nào để thay thế một chuỗi JSON trong Python? .
với mở ['tệp. json', 'r+'] dưới dạng tệp
nội dung = tập tin. đọc[]
tập tin. tìm kiếm[0]
Nội dung. thay thế ['string_replaced', 'new_string']
tập tin. viết [nội dung]

Làm cách nào để thay thế một giá trị cụ thể trong JSON?

stringify[dữ liệu]. replace[null, "'#'"]; //chuyển sang chuỗi JSON var new = JSON. phân tích cú pháp [cũ]; . chức năng [tin nhắn] { cảnh báo [tin nhắn];

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ủ Đề