Tôi có đối tượng JSON sau đây trong Python:
jsonobj = {
"a": {
"b": {
"c": var1,
"d": var2,
"e": [],
},
},
}
Và tôi muốn nối các yếu tố giá trị khóa vào "E", nhưng không thể tìm ra cú pháp cho nó. Tôi đã thử nối thêm những điều sau đây, nhưng nó không xuất hiện đúng với giá đỡ và trích dẫn:
jsobj["a"]["b"]["e"].append["'f':" + var3]
Thay vào đó, tôi muốn "E" là như sau:
"e":[
{"f":var3, "g":var4, "h":var5},
{"f":var6, "g":var7, "h":var8},
]
Có ai biết đúng cách để nối vào mảng JSON này không? Đánh giá cao.
Nội dung
- Giới thiệu
- Cú pháp
- Ví dụ 1: Chuyển đổi danh sách Python thành JSON
- Ví dụ 2: Chuyển đổi danh sách từ điển của Python thành JSON
- Ví dụ 3: Chuyển đổi danh sách danh sách Python thành JSON thành JSON
- Bản tóm tắt
Để chuyển đổi danh sách Python thành JSON, hãy sử dụng hàm json.dumps []. Hàm Dumps [] lấy danh sách làm đối số và trả về chuỗi JSON.
Cú pháp
Ví dụ 1: Chuyển đổi danh sách Python thành JSON
import json
jsonString = json.dumps[list]
Ví dụ 2: Chuyển đổi danh sách từ điển của Python thành JSON
Ví dụ 1: Chuyển đổi danh sách Python thành JSON
Ví dụ 2: Chuyển đổi danh sách từ điển của Python thành JSON
Ví dụ 3: Chuyển đổi danh sách danh sách Python thành JSON thành JSON
import json
aList = [41, 58, 63]
jsonStr = json.dumps[aList]
print[jsonStr]
Bản tóm tắt
Phương thức Syntax để sử dụng phương thức json.dumps [] là
[41, 58, 63]
Ví dụ 2: Chuyển đổi danh sách từ điển của Python thành JSON
Ví dụ 3: Chuyển đổi danh sách danh sách Python thành JSON thành JSON
Ví dụ 3: Chuyển đổi danh sách danh sách Python thành JSON thành JSON
import json
aList = [{'a':1, 'b':2}, {'c':3, 'd':4}]
jsonStr = json.dumps[aList]
print[jsonStr]
Bản tóm tắt
Phương thức Syntax để sử dụng phương thức json.dumps [] là
[{"a": 1, "b": 2}, {"c": 3, "d": 4}]
Ví dụ 3: Chuyển đổi danh sách danh sách Python thành JSON thành JSON
Bản tóm tắt
Ví dụ 3: Chuyển đổi danh sách danh sách Python thành JSON thành JSON
import json
aList = [[{'a':1, 'b':2}], [{'c':3, 'd':4}]]
jsonStr = json.dumps[aList]
print[jsonStr]
Bản tóm tắt
Phương thức Syntax để sử dụng phương thức json.dumps [] là
[[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]]
Bản tóm tắt
Phương thức Syntax để sử dụng phương thức json.dumps [] là
Chúng tôi phải nhập gói JSON để sử dụng json.dumps [].
- Trong ví dụ này, chúng tôi sẽ lấy một danh sách python với một số số trong đó và chuyển đổi nó thành chuỗi JSON.
- Chương trình Python
- Chạy
- Đầu ra
- Trong ví dụ này, chúng tôi sẽ lấy một danh sách python với từ điển làm yếu tố và chuyển đổi nó thành chuỗi JSON.
- Trong ví dụ này, chúng tôi sẽ lấy một danh sách danh sách Python và chuyển đổi nó thành chuỗi JSON.
- Trong hướng dẫn này về các ví dụ Python, chúng tôi đã học cách chuyển đổi danh sách Python thành chuỗi JSON.
- Hướng dẫn liên quan
Làm thế nào để nối dữ liệu vào tệp JSON trong Python?
Xây dựng vấn đề
Cho một đối tượng JSON được lưu trữ trong một tệp có tên
jsobj["a"]["b"]["e"].append["'f':" + var3]
4, chẳng hạn như danh sách các từ điển.Làm thế nào để nối dữ liệu như một từ điển mới cho nó?
jsobj["a"]["b"]["e"].append["'f':" + var3]
0Phương pháp 1: Sử dụng json.load [tệp] và json.dump [dữ liệu, tệp]
Để cập nhật đối tượng JSON trong một tệp, hãy nhập thư viện
jsobj["a"]["b"]["e"].append["'f':" + var3]
5, đọc tệp bằng jsobj["a"]["b"]["e"].append["'f':" + var3]
6], thêm mục nhập mới vào cấu trúc dữ liệu danh sách hoặc từ điển jsobj["a"]["b"]["e"].append["'f':" + var3]
7 và viết đối tượng JSON cập nhật với jsobj["a"]["b"]["e"].append["'f':" + var3]
8.Cụ thể, đây là bốn bước cụ thể để cập nhật tệp JSON hiện có với mục nhập mới:
- Nhập thư viện
5 vớijsobj["a"]["b"]["e"].append["'f':" + var3]
0"e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
- Đọc tệp JSON trong cấu trúc dữ liệu bằng cách sử dụng
1 sau khi mở tệp bằng"e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
2 ở chế độ đọc"e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
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 giống như bảng chuyển đổi xem bên dưới]."e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
- Cập nhật cấu trúc dữ liệu Python với mục nhập mới [ví dụ: từ điển mới để nối vào danh sách].
- Viết JSON
7 cập nhật trở lại tệp JSON bằngjsobj["a"]["b"]["e"].append["'f':" + var3]
8 sau khi mở tệp trong chế độ viết bằngjsobj["a"]["b"]["e"].append["'f':" + var3]
6."e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
jsobj["a"]["b"]["e"].append["'f':" + var3]
1Trên thực tế, khi sử dụng phương thức
"e":[
{"f":var3, "g":var4, "h":var5},
{"f":var6, "g":var7, "h":var8},
]
7, đối tượng Python được trả về được chuyển đổi từ định dạng JSON bằng cách sử dụng bảng chuyển đổi này:
sự vật | DIGN |
mảng | danh sách |
sợi dây | str |
Số [int] | int |
số [thực] | trôi nổi |
thật | ĐÚNG VẬY |
sai | Sai |
vô giá trị | Không có |
Để có được cảm giác tốt hơn cho các cấu trúc dữ liệu quan trọng nhất như từ điển Python, bạn có thể muốn kiểm tra Học viện Khoa học Máy tính Finxter:
Hướng dẫn cuối cùng về từ điển trong Python
Khóa học là miễn phí cho tất cả các thành viên Finxter Premium.
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ở nó một lần và đặt lại con trỏ tệp bằng
"e":[
{"f":var3, "g":var4, "h":var5},
{"f":var6, "g":var7, "h":var8},
]
8 để ghi đè nội dung tệp hiện có bằng bốn bước sau:- Sử dụng
9 để tạo đối tượng"e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
0 trong chế độ đọc và viếtimport json jsonString = json.dumps[list]
1.import json jsonString = json.dumps[list]
- Gọi
2 để 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 bạn. Ví dụ: nếu tệp JSON của bạn được cấu trúc như một danh sách các từ điển, chỉ cần thêm một từ điển mới.import json jsonString = json.dumps[list]
- Sử dụng
8 để đặt lại con trỏ tệp về vị trí 0, để bạn có thể ghi đè lên nó thay vì nối lại toàn bộ đối tượng JSON."e":[ {"f":var3, "g":var4, "h":var5}, {"f":var6, "g":var7, "h":var8}, ]
- Gọi
8 để ghi đè lênjsobj["a"]["b"]["e"].append["'f':" + var3]
0 vớiimport json jsonString = json.dumps[list]
7.jsobj["a"]["b"]["e"].append["'f':" + var3]
Tại đây, mã cụ thể:
jsobj["a"]["b"]["e"].append["'f':" + var3]
2Phương pháp 3: Tạo tệp JSON ban đầu và cập nhật nó sau đó
Nếu bạn không có tệp JSON, trước tiên bạn có thể tạo tệp từ danh sách ban đầu như sau:
jsobj["a"]["b"]["e"].append["'f':" + var3]
3Tóm tắt và thảo luận
Tất cả ba phương thức được trình bày trong bài viết này về cơ bản sử dụng cùng một ý tưởng: gọi
import json
jsonString = json.dumps[list]
7] để cập nhật một tệp với 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 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
import json
jsonString = json.dumps[list]
2 trên đối tượng tệp được mở ở chế độ đọc.Nói chung, việc nối dữ liệu vào tệp JSON không phải là một ý tưởng tốt bởi 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 nhập, độ phức tạp thời gian chạy chỉ cập nhật nó là o [n].n entries, the runtime complexity of just updating it is O[n].
Một 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 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ỉ nối 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 kiểm tra khóa học gian lận Python miễn phí của tôi để giữ sắc nét và cải thiện các kỹ năng trăn 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 hài hước
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.