Python chuyển đổi chuỗi thành từ điển json

Bạn ở đây vì khi bạn giải mã dữ liệu JSON và dữ liệu JSON dự kiến ​​là loại dict, nhưng nó xuất hiện dưới dạng 

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
0

Đọ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

Nói cách khác, Bạn muốn phân tích cú pháp tệp JSON và chuyển đổi dữ liệu JSON thành từ điển để bạn có thể truy cập JSON bằng các cặp khóa-giá trị của nó, nhưng khi bạn phân tích cú pháp dữ liệu JSON, bạn nhận được một danh sách chứ không phải từ điển. Trong bài viết này, chúng ta sẽ xem cách truy cập dữ liệu trong những tình huống như vậy. Trước đó, trước tiên hãy hiểu tại sao điều này lại xảy ra

  • Nó có thể xảy ra vì JSON của bạn là một mảng có một đối tượng bên trong, chẳng hạn như ai đó đã tuần tự hóa danh sách Python thành JSON. Vì vậy, khi bạn phân tích nó, bạn sẽ nhận được một đối tượng danh sách. Trong trường hợp này, bạn cần lặp lại danh sách để truy cập dữ liệu
  • Ngoài ra, nếu ai đó đã tuần tự hóa danh sách Python (chứa từ điển) thành JSON. Khi bạn phân tích cú pháp, bạn sẽ nhận được một danh sách có từ điển bên trong. Chúng ta sẽ xem cách truy cập dữ liệu đó

Chúng ta sẽ xem cả hai ví dụ. nhưng trước tiên, hãy hiểu kịch bản bằng một ví dụ

import json

sampleList = [125, 23, 85, 445]

# Serialization
print("serialize into JSON and write into a file")
with open("sampleFile.json", "w") as write_file:
    json.dump(sampleList, write_file)
print("Done Writing into a file")

# Deserialization
print("Started Reading JSON data from file")
with open("sampleFile.json", "r") as read_file:
    data = json.load(read_file)
print("Type of deserialized data: ", type(data))

đầu ra

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  

Như bạn có thể thấy, chúng tôi đã nhận được một danh sách từ json. load() vì chúng tôi chỉ tuần tự hóa đối tượng loại danh sách. Bây giờ chúng ta có thể truy cập dữ liệu bằng cách lặp lại nó như thế này. chỉ cần thêm các dòng sau vào cuối ví dụ trên và thực hiện nó

print("Data is")
for i in data:
    print(i)

đầu ra

Data is
125
23
85
445

Deserialize một mảng JSON có chứa một từ điển bên trong

Bây giờ, hãy xem kịch bản thứ hai. Giả sử ai đó đã tuần tự hóa danh sách Python (chứa từ điển) thành JSON. tôi. e. , Danh sách chứa một từ điển bên trong

Trong ví dụ này, tôi đang tuần tự hóa MarksList sau thành JSON

StudentDict = {"id": 22, "name": "Emma"}
MarksList = [StudentDict, 78, 56, 85, 67]

Bạn có thể truy cập trực tiếp vào từ điển thực tế bằng cách truy cập các mục thứ 0 từ danh sách. Bây giờ hãy xem ví dụ

Khi bạn chuyển đổi từ Python sang JSON, các đối tượng Python được chuyển đổi thành JSON (JavaScript) tương đương

PythonJSONdictObjectlistArraytupleArraystrStringintNumberfloatNumberTruetrueFalsefalseNonenull

Thí dụ

Chuyển đổi một đối tượng Python chứa tất cả các loại dữ liệu hợp lệ

nhập json

x = {
  "tên". "John",
  "tuổi". 30,
  "đã kết hôn". Đúng,
  "đã ly hôn". Sai,
  "con". ("Ann","Billy"),
  "thú cưng". Không,
  "ô tô". [
    {"model". "BMW 230", "mpg". 27. 5},
    {"model". "Ford Edge", "mpg". 24. 1}
  ]
}

in (json. bãi (x))

Tự mình thử »


Định dạng kết quả

Ví dụ trên in ra một chuỗi JSON, nhưng nó không dễ đọc lắm, không có dấu đầu dòng và ngắt dòng

Phương thức

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
1 có các tham số để dễ đọc kết quả hơn

Bạn cũng có thể xác định dấu phân cách, giá trị mặc định là (", ", ". "), có nghĩa là sử dụng dấu phẩy và dấu cách để phân tách từng đối tượng, dấu hai chấm và dấu cách để phân tách khóa khỏi giá trị

Trong bài viết này, chúng ta sẽ tìm hiểu cách chuyển đổi chuỗi JSON thành từ điển trong Python. Chúng tôi sẽ sử dụng chức năng tích hợp có sẵn trong Python cho JSON và một số ví dụ tùy chỉnh có liên quan. Trước tiên, hãy xem nhanh dạng đầy đủ của JSON và cách các tệp JSON được sử dụng

JSON là gì?

JSON là viết tắt của

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
2. Nó là một định dạng dữ liệu phổ biến được sử dụng để biểu diễn dữ liệu có cấu trúc. Nó là một định dạng nhẹ được sử dụng để trao đổi dữ liệu. Biểu diễn dữ liệu trong JSON tương tự như biểu diễn của Từ điển Python. Nó là một tập hợp các cặp tên/giá trị. Trong JSON, việc truyền và nhận dữ liệu giữa máy chủ và ứng dụng web ở định dạng JSON là phổ biến. Nó cũng phổ biến để lưu trữ một đối tượng JSON trong một tệp. Dữ liệu JSON có thể ở dạng đối tượng, mảng, giá trị, chuỗi hoặc số. Trong Python, JSON tồn tại dưới dạng một chuỗi hoặc giống như một từ điển có các cặp khóa-giá trị trong đó các khóa phải là một chuỗi và các giá trị có thể thuộc bất kỳ loại nào như đối tượng, mảng, giá trị, chuỗi hoặc số

Chuyển đổi Chuỗi JSON thành Từ điển Python bằng json. hàm tải ()

Python cung cấp phương thức

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
3 để chuyển đổi nội dung tệp JSON thành Từ điển Python. Chuyển đổi tệp JSON thành từ điển là một nhiệm vụ khá dễ dàng trong python vì tập lệnh python cung cấp mô-đun JSON tích hợp và JSON có hàm load() tích hợp để thực hiện quá trình chuyển đổi. Sử dụng cùng một chức năng JSON, chúng ta cũng có thể chuyển đổi một chuỗi JSON do người dùng nhập làm từ điển. Cách này dùng khi lập trình viên đã có sẵn file JSON với dữ liệu có cấu trúc

cú pháp

json.load(file object)

Tệp JSON mẫu

Tệp JSON này, chúng tôi sẽ chuyển đổi thành Từ điển Python

{
 "Science" : [
   {
	"name" : "Flora"
	"age"  : 18
	"marks": 87
   },
   {
	"name" : "Frank"
	"age"  : 18
	"marks": 76
   }
 ],
 "Commerce" : [
   {
	"name" : "David"
	"age"  : 18
	"marks": 92
   },
   {
	"name" : "Denver"
	"age"  : 19
	"marks": 65
   }
 ]
}

Thí dụ

Trong ví dụ sau, chúng ta sẽ đọc một tệp JSON và sau đó in ra dữ liệu dưới dạng từ điển. Hàm

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
3 này đọc chuỗi từ tệp JSON. json. hàm load(file) tạo và trả về một từ điển Python mới với các cặp khóa-giá trị trong tệp JSON. Sau đó, từ điển này được gán cho biến dữ liệu và kết quả được hiển thị. Bạn cũng có thể kiểm tra kiểu của biến bằng cách sử dụng hàm
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
5 có sẵn của Python

import json

#opens the JSON file 
with open("sample.json") as json_file:
    data = json.load(json_file)
    
#type of data variable
print("Type:", type(data))
    
#prints the data in dictionary
print("Science Students:", data['Science'])
print("Commerce Students:", data['Commerce'])


Loại.
Sinh viên khoa học. [{'Tên'. 'Hệ thực vật', 'tuổi tác'. 18, 'điểm'. 87}, {'tên'. 'Frank', 'tuổi tác'. 18, 'điểm'. 76}]
Sinh viên Thương mại. [{'Tên'. 'David', 'tuổi'. 18, 'điểm'. 92}, {'tên'. 'Denver', 'tuổi tác'. 19, 'điểm'. 65}]

Vì chúng ta đã đọc tệp JSON, đã chuyển đổi chuỗi JSON thành Từ điển Python, giờ đây chúng ta có thể truy cập dữ liệu bằng chỉ mục như hình bên dưới. Đây là cách chúng ta có thể in dữ liệu lồng nhau

________số 8


{'Tên'. 'Hệ thực vật', 'tuổi tác'. 18, 'điểm'. 87}

Những điểm cần nhớ

1. Để đọc bất kỳ tệp JSON nào và để làm việc với JSON (chuỗi hoặc tệp chứa đối tượng JSON), bạn phải nhập mô-đun JSON trong tập lệnh python

2. Tệp JSON của bạn và tập lệnh Python của bạn phải nằm trong cùng một thư mục

3. Tệp JSON của bạn phải tuân theo tiêu chuẩn JSON, vì vậy nó phải có dấu ngoặc kép thay vì dấu ngoặc đơn, nếu không nó sẽ trả về JSONDecodeError

Sự kết luận

Trong đoạn mã trên, chúng ta học cách đọc một chuỗi JSON và chuyển đổi dữ liệu sang Từ điển Python. Bây giờ, chúng ta có thể truy cập dữ liệu bằng cách sử dụng các chỉ mục như chúng ta làm trong Từ điển Python

Bạn có thể chuyển đổi một chuỗi thành từ điển trong Python không?

Bạn có thể dễ dàng chuyển đổi chuỗi python sang từ điển bằng cách sử dụng chức năng sẵn có của vô số thư viện json của python . Trước khi sử dụng phương pháp này, bạn phải nhập thư viện json trong python bằng từ khóa “nhập”.

Từ điển có thể được chuyển đổi thành JSON không?

Phương pháp 5. Chuyển từ điển sang JSON bằng cách sử dụng sort_keys . Để chuyển đổi một dict thành JSON python bằng cách sử dụng sort_keys, chúng tôi sử dụng thuộc tính sort_keys bên trong hàm dumps() để đạt được điều tương tự.

Sự khác biệt giữa JSON và từ điển là gì?

JSON là viết tắt của Ký hiệu đối tượng JS. Vì vậy, đó là một ký hiệu, một định dạng - đơn thuần là một tập hợp các quy tắc xác định cách biểu diễn dữ liệu ở định dạng văn bản. Python Dictionary là lớp biểu diễn cấu trúc dữ liệu bảng băm trong Python. Nó trông giống như JSON;