Python thêm danh sách vào json

Ngoài ra, bạn sẽ tìm ra cách kết hợp hai danh sách riêng biệt với tên trường và giá trị thành một đối tượng JSON duy nhất

Vì vậy, những điều đầu tiên đầu tiên

JSON là gì?

theo json. org, JSON là một định dạng trao đổi dữ liệu nhẹ. Thật dễ dàng cho con người để đọc và viết.  

Máy có thể dễ dàng diễn giải và tạo JSON.  

Đừng bị đe dọa bởi JavaScript trong từ viết tắt. JSON được sinh ra từ ngôn ngữ này nhưng hóa ra lại là một công cụ tuyệt vời để gửi dữ liệu, chẳng hạn như trong các yêu cầu HTTP. Nó nhỏ gọn, nhẹ và dễ đọc.  

Vì vậy, thật dễ dàng để chuyển nó qua mạng, dễ dàng phân tích cú pháp và dễ dàng đọc dưới dạng văn bản đơn giản

Sự khác biệt giữa JSON và XML là gì?

Nếu bạn đã quen thuộc với XML, thì JSON cũng rất giống. Ngoài ra còn có các trường có tên và giá trị

Hãy so sánh JSON và XML cho cùng một đối tượng

Đây là JSON

[  
   {  
      "name":"Alice",  
      "age": 31,  
      "children": [  
         {  
            "name":"Kate",  
            "sex":"girl",  
            "age": 4  
         },  
         {  
            "name":"John",  
            "sex":"boy",  
            "age": 2  
         }  
      ]  
   },  
   {  
      "name":"Bob",  
      "age": 35,  
      "children":null  
   },  
   {  
      "name":"Christine",  
      "age": 25,  
      "children": [  
         {  
            "name":"Ada",  
            "sex":"girl",  
            "age": 1  
         }  
      ]  
   }  
]  

Đây là XML

  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  

XML trông khó đọc hơn vì các thẻ mở và đóng. Tuy nhiên, nói chung, cả hai định dạng đều có thể được đọc mà không cần xử lý thêm

Đối tượng JSON và Mảng JSON

Hãy xem xét đối tượng JSON. Trong trường hợp này, đó là một mảng JSON. Nó được đặt trong dấu ngoặc vuông và có thể chứa các giá trị thuộc các loại khác nhau

  • Các mảng JSON khác
  • Các đối tượng JSON được đặt trong dấu ngoặc nhọn
  • Giá trị chuỗi trích dẫn
  • Giá trị số [số nguyên và số thực]
  • Booleans [đúng hoặc sai]
  • Giá trị trống [không có]

Mảng trên chứa ba đối tượng JSON được phân tách bằng dấu phẩy. Dấu ngoặc nhọn xác định các đối tượng JSON

Xem tại đây để biết sự khác biệt giữa mảng JSON và đối tượng JSON

Hãy nhìn vào đối tượng đầu tiên trong mảng. Nó chứa một loạt các trường có tên là các chuỗi trong dấu ngoặc kép.  

Sau tên trường, bạn viết dấu hai chấm rồi đến giá trị của trường. Trường “tên” là một chuỗi “Alex”, trường “tuổi” là số 31 và trường “trẻ em” là một mảng JSON có hai đối tượng JSON

Làm cách nào để chuyển đổi danh sách Python thành một mảng hoặc đối tượng JSON?

Python có mô-đun riêng để làm việc với các Đối tượng JSON. Bạn có thể nhập nó như thế này

import json  

Sau đó, bạn sẽ nhận được các phương thức để chuyển đổi một chuỗi hoặc tệp thành một đối tượng Python và ngược lại

Danh sách Python có cấu trúc tương tự nhất với mảng JSON, vì vậy chúng được chuyển đổi trực tiếp thành mảng JSON bằng cách sử dụng phương thức kết xuất

import json  
  
lst = [1, 2, 3]  
json_string = json.dumps[lst]  
print[json_string]
[1, 2, 3] 

Đối tượng Python nào gần với đối tượng JSON nhất? . nếu bạn biết dù chỉ một chút Python, bạn có thể đoán rằng đó là một cuốn từ điển.  

Từ điển cũng có thể được chuyển đổi thành một đối tượng JSON bằng phương thức kết xuất

import json  
  
dic = {"a": 1, "b": 2}  
  
json_string = json.dumps[dic]  
print[json_string]
{"a": 1, "b": 2}

Hãy xây dựng một từ điển tương ứng với đối tượng JSON của chúng ta từ mảng và chuyển đổi nó sang định dạng JSON

Lưu ý rằng Python sẽ cho phép bạn đặt dấu ngắt dòng bên trong bất kỳ dấu ngoặc đơn nào. Cũng giống như các tab và dấu cách, chúng được bỏ qua để bạn có thể viết đối tượng của mình một cách độc đáo

import json  
  
dic = {    
      "name":"Alice",    
      "age": 31,    
      "children": [    
         {    
            "name":"Kate",    
            "sex":"girl",    
            "age": 4    
         },    
         {    
            "name":"John",    
            "sex":"boy",    
            "age": 2    
         }    
      ]    
   }  
  
json_string = json.dumps[dic]  
print[json_string]  
{"name": "Alice", "age": 31, "children": [{"name": "Kate", "sex": "girl", "age": 4}, {"name": "John", "sex": "boy", "age": 2}]}

Như bạn có thể thấy, đầu ra là một chuỗi phẳng. Nếu bạn lưu nó vào một tập tin, nó sẽ không thuận tiện để đọc. May mắn thay, phương thức kết xuất có một tham số thụt lề tiện dụng cho phép bạn định dạng chuỗi

import json  
  
dic = {    
      "name":"Alice",    
      "age": 31,    
      "children": [    
         {    
            "name": "Kate",    
            "sex": "girl",    
            "age": 4    
         },    
         {    
            "name": "John",    
            "sex": "boy",    
            "age": 2    
         }    
      ]    
   }  
  
json_string = json.dumps[dic, indent = 2]  
print[json_string]  
  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
0

Đầu ra này dễ đọc hơn

Làm cách nào để chuyển đổi một mảng hoặc đối tượng JSON thành danh sách Python?

Trong trường hợp bạn muốn tải một đối tượng từ JSON vào danh sách, bạn phải sử dụng phương thức tải.  

Nhân tiện, việc chuyển đổi một đối tượng [ví dụ: danh sách hoặc từ điển Python] thành chuỗi JSON được gọi là tuần tự hóa, đừng lo lắng khi bạn bắt gặp từ này.  

Quá trình đảo ngược để lấy một đối tượng từ chuỗi JSON được gọi là quá trình giải tuần tự hóa

Hãy giải tuần tự hóa một từ điển từ một chuỗi

  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
1
  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
2

Khi bạn đã giải tuần tự hóa một đối tượng JSON, bạn có thể tham khảo các giá trị của trường theo tên của chúng

Ví dụ, trong ví dụ trên, bạn hiển thị giá trị của tên trường sau khi deserializing.  

Lưu ý rằng chuỗi JSON nằm trong dấu ngoặc đơn và tất cả các chuỗi bên trong đối tượng JSON đều nằm trong dấu ngoặc kép. Nếu bạn không làm điều này, bạn sẽ phải thoát mọi trích dẫn kép trong chuỗi

Ngoài ra, hãy đảm bảo rằng bạn đặt tên trường trong dấu ngoặc kép trong đối tượng JSON

Không giống như Python, nơi bạn có thể viết chuỗi trong cả dấu ngoặc đơn và dấu ngoặc kép, dấu ngoặc đơn trong bản ghi đối tượng sẽ gây ra lỗi

  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
3_______1_______4

Làm cách nào để chuyển đổi nhiều danh sách Python thành một đối tượng JSON?

Nếu bạn có hai danh sách thì sao?

Một với các trường và một với các giá trị.  

Làm thế nào để bạn chuyển đổi chúng thành một đối tượng JSON trong trường hợp này?

Để làm điều này, bạn sẽ phải chuyển đổi danh sách thành từ điển. Bạn có thể làm điều này chẳng hạn với cách hiểu từ điển

Bạn lặp qua các chỉ mục và điền các khóa và giá trị của từ điển bằng các giá trị từ danh sách. Sau đó, bạn chuyển từ điển sang JSON bằng phương thức dumps

  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
5

đầu ra.   

  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
6

Một cách khác là sử dụng chức năng zip. Nó nhận hai danh sách làm đầu vào và trả về một chuỗi các bộ giá trị từ các danh sách đó.  

Phần tử đầu tiên của đối tượng zip là giá trị đầu tiên của danh sách đầu tiên và giá trị đầu tiên của danh sách thứ hai

Phần tử thứ hai của đối tượng zip là giá trị thứ hai của danh sách đầu tiên và giá trị thứ hai của danh sách thứ hai. Và như thế

Sau đó, bạn có thể sử dụng hàm tạo từ điển để tạo từ điển. Sau đó, phương thức kết xuất để tuần tự hóa từ điển thành JSON

  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
7
  
  
    
    Alice  
    31  
      
      Kate  
      girl  
      4  
      
      
      John  
      boy  
      2  
      
    
    
    Bob  
    35  
      
    
    
    Christine  
    25  
      
      Ada  
      girl  
      1  
      
    
  
6

Phương pháp thứ hai là phương pháp đẹp hơn, nhưng hãy sử dụng phương pháp nào phù hợp với bạn

Để tuần tự hóa và giải tuần tự hóa các đối tượng JSON từ một tệp, bạn có thể sử dụng các phương thức kết xuất và tải. Chúng hoạt động giống như các phương thức kết xuất và tải

Làm cách nào để thêm danh sách vào đối tượng JSON trong Python?

Phương pháp 1. sử dụng json. .
Nhập thư viện json với nhập json. .
Đọc tệp JSON trong cấu trúc dữ liệu bằng cách sử dụng data = json. .
Cập nhật cấu trúc dữ liệu Python với mục nhập mới [e. g. , một từ điển mới để thêm vào danh sách]. .
Viết dữ liệu JSON đã cập nhật trở lại tệp JSON bằng json

Làm cách nào để thêm dữ liệu danh sách vào JSON?

Chúng ta có thể chuyển đổi danh sách thành mảng JSON bằng cách sử dụng JSONArray. toJSONString[] method và nó là một phương thức tĩnh của JSONArray, nó sẽ chuyển đổi một danh sách thành văn bản JSON và kết quả là một mảng JSON.

Làm cách nào để ghi dữ liệu danh sách vào tệp JSON trong Python?

Để chuyển đổi Danh sách Python thành JSON, hãy sử dụng json. hàm kết xuất[] . Hàm dumps[] lấy danh sách làm đối số và trả về Chuỗi JSON.

Bạn có thể đặt danh sách trong tệp JSON không?

Mảng JSON là danh sách các giá trị được sắp xếp theo thứ tự . Mảng JSON có thể có nhiều kiểu dữ liệu. Mảng JSON có thể lưu trữ chuỗi, số, boolean, đối tượng hoặc mảng khác bên trong mảng JSON. Trong mảng JSON, các giá trị phải được phân tách bằng dấu phẩy.

Chủ Đề