JSON dict để liệt kê Python

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

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
3, nhưng nó xuất hiện dưới dạng 
company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
4

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

Ghi chú. đây là bài học thứ năm trong phần giới thiệu về Python cho người mới bắt đầu. Để biết toàn bộ lịch trình, hãy xem trang chủ của Nhóm làm việc Vanderbilt Python

bài học trước về danh sách và vòng lặp

Các ví dụ trong bài học này có thể được chạy trong sổ ghi chép của Google Colaboratory. Cần có tài khoản Google. Nhấp vào liên kết này, sau đó nếu cần, hãy nhấp vào “Mở bằng Google Colaboratory”. Từ menu tệp, chọn

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}
8 Điều đó sẽ tạo một bản sao của sổ ghi chép mà bạn có thể chạy, chỉnh sửa và lưu. Bạn có thể phải bật cửa sổ bật lên để bản sao mở trong tab mới

Nếu bạn quan tâm đến việc sử dụng sổ ghi chép Jupyter, các ví dụ có sẵn trong sổ ghi chép này

Bản trình bày cho bài học này ở đây

Đáp án cho các bài toán thử thách tuần trước

1. a. In 5 thẻ

b. Tạo danh sách tay

2. a. Lời bài thơ Reverse Frost

b. Đảo ngược toàn bộ bài thơ Frost

Trong bài học trước, chúng ta đã tìm hiểu về một cấu trúc dữ liệu Python quan trọng. danh sách. Trong bài học này, chúng ta sẽ bắt đầu bằng cách xem xét cấu trúc dữ liệu quan trọng thứ hai. từ điển

Từ điển là một cấu trúc về cơ bản là một danh sách các khóa. cặp giá trị. Từ điển được bao quanh bởi dấu ngoặc nhọn. Đây là một ví dụ

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}

Trong từ điển, chúng tôi đề cập đến các mục theo khóa của chúng, thay vì số chỉ mục của chúng dựa trên vị trí của chúng trong chuỗi. Vậy thứ tự khóa. cặp giá trị trong từ điển là không quan trọng. Đây là cách chúng tôi đề cập đến giá trị có khóa là 'Daffy Duck'.

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}
9

Đây là một ví dụ về cách chúng ta có thể sử dụng từ điển

________số 8

Điều này hoạt động khá tốt, miễn là chúng ta gõ một trong các phím có trong từ điển. Nhưng nếu không, chúng tôi sẽ tạo ra lỗi. Một giải pháp là bao gồm một bẫy lỗi. Đây là cách chúng ta có thể làm điều đó

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")

Ghi chú. một lỗi được gọi là một ngoại lệ, vì vậy đó là lý do tại sao từ khóa cho khối sau

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

Thử cái này

câu trả lời là

Đây là dữ liệu về giá của các mặt hàng với số danh mục là chính

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}

A. Sử dụng từ điển, in tên và giá của mặt hàng có số danh mục

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

B. Sử dụng vòng lặp

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
03 để lặp qua danh sách các mục. Đối với mỗi mặt hàng, in tên và giá của nó

C. Cho phép người dùng nhập tên của một mục. Lặp lại danh sách các mục và kiểm tra từng mục để xem nó có khớp với tên do người dùng nhập không. Nếu vậy, in giá

D. Đặt cờ tên là

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
04 bằng với
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
05 trước vòng lặp. Nếu trùng khớp, đặt giá trị 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:  
04 bằng với
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
07. Nếu ở cuối vòng lặp không khớp, hãy in một thông báo cho biết như vậy

Danh sách từ điển

Giống như chúng ta có thể tạo danh sách các danh sách, chúng ta có thể tạo danh sách từ điển. Điều này có thể hữu ích nếu chúng ta muốn theo dõi nhiều hơn hai thứ được liên kết. Trong ví dụ trước, chúng tôi chỉ muốn liên kết nhân vật với công ty. Nhưng chúng tôi có thể muốn theo dõi nhiều hơn thế

Trong danh sách từ điển, trước tiên chúng tôi đề cập đến số chỉ mục của từ điển trong ngoặc vuông, sau đó là khóa của mục từ điển (danh sách là cấu trúc bên ngoài và từ điển là cấu trúc bên trong). Bạn có thể hiểu làm thế nào điều này hoạt độ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

Vì danh sách có thể lặp lại nên chúng ta có thể lặp qua từng từ điển. Trong ví dụ sau, chúng tôi duyệt qua từng từ điển (được biểu thị bằng biến

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
08) và kiểm tra tên của từng ký tự để xem nó có khớp với tên chúng tôi đã nhập không

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

Điều này tốt hơn một chút so với tập lệnh trước đó, vì chúng tôi không gặp lỗi nếu không có ký tự khớp. (Chuyện gì xảy ra vậy?)

Đây là một kịch bản phức tạp hơn. Bạn có thể tìm ra làm thế nào nó hoạt động?

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

Lưu ý cách chúng ta cần chú ý cẩn thận đến các mức thụt đầu dòng khi mã trở nên phức tạp với các vòng lặp và các câu lệnh

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
09 lồng nhau. Chúng tôi đã giải quyết vấn đề về trường hợp không có ký tự nào khớp với nhau như thế nào?

Hiện tại, Javascript Object Notation (JSON) là một trong những cách phổ biến nhất để truyền dữ liệu giữa các ứng dụng. Hầu hết các giao diện lập trình ứng dụng (API) có sẵn trực tuyến đều cung cấp dữ liệu ở dạng JSON – đôi khi là độc quyền

Nền JSON

Dưới đây là một số điều cơ bản về JSON

Một đơn vị cơ bản của JSON là một khóa. cặp giá trị. Ví dụ

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

Khóa (về mặt kỹ thuật được gọi là "tên" trong JSON) phải là một chuỗi trong dấu ngoặc kép. Giá trị có thể là một chuỗi (trong dấu ngoặc kép), một số (không nằm trong dấu ngoặc kép) hoặc những thứ khác. Trong JSON, dấu ngoặc kép phải được sử dụng để đặt dấu ngoặc kép – dấu ngoặc đơn không được phép

Một đối tượng JSON là một danh sách khóa không có thứ tự. các cặp giá trị, được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc nhọn

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

Mảng JSON là một danh sách các giá trị được sắp xếp theo thứ tự, được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông. Như trong khóa. cặp giá trị, giá trị mảng có thể là chuỗi (trong dấu ngoặc kép), số (không nằm trong dấu ngoặc kép) hoặc những thứ khác

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

"Những thứ khác" được phép làm giá trị trong khóa. các cặp hoặc mảng giá trị có thể là các đối tượng hoặc mảng JSON. Do đó, JSON có thể có các cấu trúc lồng nhau phức tạp, chẳng hạn như mảng trong đối tượng, đối tượng trong mảng, mảng trong mảng, đối tượng trong đối tượng hoặc các kết hợp phức tạp hơn. Ví dụ

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
0

Trong ví dụ này, việc lồng một mảng dưới dạng một giá trị với một đối tượng JSON cho thấy rằng khóa tên có thể có nhiều giá trị trong mảng

Khoảng trắng không quan trọng trong JSON. Ba cấu trúc JSON sau đây hoàn toàn giống nhau

________ 81 ________ 82 ________ 83

Khoảng trắng có thể được sử dụng để làm cho JSON dễ đọc hơn đối với con người, nhưng phần mềm tiêu thụ sẽ thấy các lựa chọn thay thế giống nhau

Để biết chi tiết về JSON, hãy xem trang này

JSON và Python

Khi đọc phần trước, bạn có thể nhận thấy rằng JSON rất giống với cấu trúc dữ liệu Python mà chúng ta đã sử dụng (ngoại trừ JSON yêu cầu dấu ngoặc kép và Python cho phép dấu ngoặc kép hoặc dấu ngoặc đơn). Một “đối tượng JSON” rất giống với từ điển Python. “Mảng JSON” rất giống với danh sách Python. Cũng giống như cách các đối tượng JSON có thể được lồng trong các mảng hoặc các mảng được lồng trong các đối tượng, từ điển Python có thể được lồng trong danh sách hoặc danh sách được lồng trong từ điển. Vì vậy, gần như bất kỳ cấu trúc dữ liệu JSON nào cũng có thể được dịch thành một đối tượng dữ liệu Python phức tạp

Có một thư viện Python, được gọi một cách thích hợp là mô-đun

print("Data is")
for i in data:
    print(i)
10, sẽ chuyển đổi một chuỗi JSON thành một đối tượng dữ liệu Python và ngược lại

ví dụ đầu tiên. Mảng JSON được lồng bên trong một đối tượng (Danh sách Python bên trong từ điển)

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
4

ghi chú

  • Lưu ý cách ba trích dẫn đơn được sử dụng để tạo chuỗi nhiều dòng bao gồm các dòng mới như một phần của chuỗi. Vì các dòng mới và khoảng trắng bị bỏ qua khoảng trắng trong JSON, hàm
    print("Data is")
    for i in data:
        print(i)
    11 không có vấn đề gì với chúng và chuỗi nhiều dòng sẽ dễ đọc hơn đối với chúng tôi
  • Trong từ điển có kết quả từ hàm
    print("Data is")
    for i in data:
        print(i)
    11, chúng ta có thể tham chiếu đến các giá trị bằng chuỗi khóa
  • Vì giá trị của khóa
    print("Data is")
    for i in data:
        print(i)
    13 là một danh sách, chúng tôi phải bao gồm một số chỉ mục trong bộ dấu ngoặc vuông thứ hai để chỉ giá trị mà chúng tôi muốn

Ví dụ thứ hai. Đối tượng JSON được lồng bên trong một mảng (Từ điển Python bên trong danh sách)

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
5

ghi chú

  • Trong ví dụ này, chúng tôi đã áp dụng trực tiếp hàm
    print("Data is")
    for i in data:
        print(i)
    14 cho chuỗi nhiều dòng và gán ngay cho một biến
  • Vì lớp bên ngoài là danh sách, dấu ngoặc vuông đầu tiên có chỉ số
  • Vì giá trị của mục 1 trong danh sách là một từ điển lồng nhau, chúng tôi viết khóa cho giá trị mà chúng tôi muốn trong dấu ngoặc vuông thứ hai

Ví dụ thứ ba. Đối tượng JSON được lồng bên trong một đối tượng (Từ điển Python bên trong từ điển)

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
6

ghi chú

  • Khóa trong dấu ngoặc vuông đầu tiên có giá trị là từ điển lồng nhau chứa thông tin về người dùng
  • Dấu ngoặc vuông thứ hai chứa khóa của giá trị mong muốn trong từ điển lồng nhau

Mô-đun json có chức năng

print("Data is")
for i in data:
    print(i)
15 hoạt động theo hướng ngược lại. nó biến cấu trúc dữ liệu bao gồm từ điển và danh sách thành một chuỗi JSON có thể được lưu trong một tệp hoặc được sử dụng theo cách khác

Thử cái này

câu trả lời là

1. Đây là một số JSON về axit acetylsalicylic

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
7

Trong Python, chúng ta có thể gán JSON này cho một chuỗi như thế này

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
8

Viết đoạn mã để biến chuỗi JSON thành cấu trúc dữ liệu Python (từ điển), sau đó in công thức. Đừng quên nhập mô-đun json

2. JSON được trả về từ tìm kiếm API của Hiệp hội Hóa học Hoàng gia (https. //api. rsc. tổ chức/). Kết quả JSON cho chúng ta biết định danh của (các) hợp chất đáp ứng yêu cầu tìm kiếm. Chúng tôi muốn chèn số nhận dạng vào URL sau để lấy dữ liệu về (các) compund

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

trong đó mã định danh được thay thế ở vị trí của

print("Data is")
for i in data:
    print(i)
17 trong URL. Đây là JSON

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
print('That character works for ' + company[characterName])
9

Chúng ta có thể định dạng lại JSON để làm cho cấu trúc của nó rõ ràng hơn

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
0

Chúng ta có thể biến chuỗi JSON này thành cấu trúc dữ liệu Python bằng mã này

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
1

A. Loại đối tượng Python nào là giá trị của

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

B. Làm thế nào chúng ta có thể gọi số

print("Data is")
for i in data:
    print(i)
19 là một thành phần con của
print("Data is")
for i in data:
    print(i)
20?

C. Trong ví dụ này, loại đối tượng Python nào là số

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

D. Làm cách nào chúng tôi có thể biến nó thành một chuỗi và chèn nó vào chuỗi URL?

Các câu trả lời là

1. Đây là ví dụ cuối cùng trong phần Danh sách từ điển

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

Bởi vì chúng ta có

serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
09 bên trong 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:  
09 bên trong vòng lặp
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
03, mã này quá phức tạp và cần phải chú ý cẩn thận đến phần thụt đầu dòng. Có lẽ tốt hơn trong trường hợp như thế này là tạo một chức năng cho một phần của mã. Điều đó làm cho mã dễ đọc hơn vì bạn chỉ phải suy nghĩ về các đoạn mã nhỏ tại một thời điểm. Viết lại mã để phần có tất cả các câu lệnh
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
09 được chuyển vào một hàm có tên là
print("Data is")
for i in data:
    print(i)
26 để in câu trả lời (nếu phù hợp) và trả về biến
print("Data is")
for i in data:
    print(i)
27. Đảm bảo rằng bạn chuyển tất cả các biến vào hàm mà nó cần (i. e.
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
08,
print("Data is")
for i in data:
    print(i)
29 và
print("Data is")
for i in data:
    print(i)
27)

2. Đây là một chuỗi JSON được đơn giản hóa từ phản hồi từ API Twitter

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
3

A. Tạo một chuỗi nhiều dòng (sử dụng ba dấu nháy đơn) từ JSON ở trên và gán nó cho một biến. Sử dụng hàm

print("Data is")
for i in data:
    print(i)
14 để biến chuỗi thành cấu trúc dữ liệu Python. In cả chuỗi JSON và cấu trúc dữ liệu

  • Việc sử dụng dấu ngoặc kép và dấu ngoặc đơn thay đổi như thế nào khi chuyển đổi sang cấu trúc dữ liệu?
  • Các ký tự
    print("Data is")
    for i in data:
        print(i)
    42 xuất hiện trong chuỗi, nhưng không xuất hiện trong bản in của cấu trúc dữ liệu. Tại sao?
  • Cấu trúc dữ liệu được tạo ra rất phức tạp. Loại cấu trúc dữ liệu nào là “lớp” ngoài cùng của cấu trúc?

B. Thêm vào mã của bạn từ A. để lặp qua lớp bên ngoài của cấu trúc dữ liệu và in từng cấu trúc dữ liệu bên trong. Mỗi mục đại diện cho cái gì?

C. Sửa đổi mã của bạn từ B. để in ngày và văn bản của mỗi tweet

D. Sửa đổi mã của bạn từ C. để lưu trữ văn bản của mỗi tweet vào một danh sách riêng. In danh sách kết quả

Dữ liệu về các trường và cao đẳng của Đại học Vanderbilt ở dạng JSON có tại đây. Viết một ứng dụng cho phép người dùng tìm hiểu những gì Wikidata biết về trường học/cao đẳng của họ. Dưới đây là các bước

1. Dán JSON vào tập lệnh của bạn dưới dạng tập lệnh nhiều dòng, sau đó biến nó thành cấu trúc dữ liệu Python

2. Trình bày cho người dùng một danh sách các tên trường được đánh số

3. Người dùng nhập số trường của họ

4. Tra cứu

print("Data is")
for i in data:
    print(i)
43 của trường họ đã chọn

5. Nối chuỗi

print("Data is")
for i in data:
    print(i)
44 và ID Wikidata thành một chuỗi URL duy nhất trong biến
print("Data is")
for i in data:
    print(i)
45

6. Từ mô-đun

print("Data is")
for i in data:
    print(i)
46, sử dụng chức năng
print("Data is")
for i in data:
    print(i)
47 để mở trình duyệt của người dùng và tải trang Wikidata tương ứng cho trường của họ

câu trả lời từ điển

A

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
4

B

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
5

C

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
6

D

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
7

câu trả lời JSON

1

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
8

2. Một. Bạn có thể tìm hiểu bằng cách thêm dòng

company = {'Mickey Mouse':'Disney', 'Donald Duck':'Disney', 'Daffy Duck':'Warner Brothers', 'Fred Flintstone':'Hanna Barbera'}
characterName = input("What's the character's name? ")
try:
    print('That character works for ' + company[characterName])
except:
    print("I don't know who that character works for.")
print("That's all folks!")
9

Bạn sẽ thấy rằng đó là một danh sách. Đó là vì số nằm trong dấu ngoặc vuông - đó là danh sách chỉ có một thành viên duy nhất

B.

print("Data is")
for i in data:
    print(i)
48 Số là mục đầu tiên (và duy nhất) trong danh sách, vì vậy hãy tham khảo nó theo chỉ số 0

C. Bạn có thể tìm hiểu bằng cách thêm dòng

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}
0

Bạn sẽ thấy rằng đó là một số nguyên (số nguyên). Để biến nó thành chuỗi, bạn cần sử dụng hàm

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

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}
1

Đây là một biểu thức cho URL với các kết quả được chèn vào

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}
2

đáp án bài tập về nhà

1

itemList = ['s049', 'm486', 'z010', 'x428']
itemName = {'s049': 'widget', 'm486': 'poiuyt', 'z010': 'thingamabob', 'x428': 'foobar'}
itemPrice = {'s049': 1.98, 'm486': 14.99, 'z010': 0.49, 'x428': 250.00}
3

Lưu ý rằng tôi không phải sử dụng cùng tên biến làm đối số khi tôi gọi hàm trong tập lệnh chính như tên mà các biến đó có trong tham số định nghĩa hàm (

print("Data is")
for i in data:
    print(i)
50 trong lệnh gọi hàm là
serialize into JSON and write into a file
Done Writing into a file
Started Reading JSON data from file
Type of deserialized data:  
08 trong định nghĩa hàm, v.v. )

Làm cách nào để chuyển đổi JSON thành danh sách trong Python?

Để chuyển đổi Chuỗi JSON thành Danh sách Python, hãy sử dụng json. hàm tải() . hàm loading() lấy chuỗi JSON Array làm đối số và trả về Danh sách Python.

Làm cách nào để chuyển đổi dữ liệu JSON thành danh sách?

Chúng ta có thể chuyển đổi một mảng JSON thành một danh sách bằng cách sử dụng lớp ObjectMapper . Nó có một phương thức hữu ích readValue() lấy một chuỗi JSON và chuyển đổi nó thành lớp đối tượng được chỉ định trong đối số thứ hai.

Làm cách nào để đọc tệp JSON dưới dạng danh sách trong Python?

Làm cách nào để mở và đọc tệp JSON bằng Python? .
Mở tệp json bằng hàm open()
sử dụng json. load() và truyền đối tượng tệp
Tiến hành bằng cách sử dụng kết quả của json. load() như một từ điển python bình thường và in nội dung

Làm cách nào để nối dữ liệu JSON vào danh sách 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