Câu trả lời:
json.dumps()chuyển đổi một từ điển thành strđối tượng, không phải là một json(dict)đối tượng! Vì vậy, bạn phải tải của bạn strvào một dictđể sử dụng nó bằng cách sử dụng json.loads()phương thức
Xem json.dumps()như một phương thức lưu và json.loads()như một phương thức lấy.
Đây là mẫu mã có thể giúp bạn hiểu thêm về nó:
import json
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
loaded_r = json.loads(r)
loaded_r['rating'] #Output 3.5
type(r) #Output str
type(loaded_r) #Output dict
json.dumps()trả về biểu diễn chuỗi JSON của dict python. Xem tài liệu
Bạn không thể làm r['rating']bởi vì r là một chuỗi, không phải là một dict nữa
Có lẽ bạn có ý gì đó như
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
Không cần phải chuyển đổi nó trong một chuỗi bằng cách sử dụng json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
Bạn có thể lấy các giá trị trực tiếp từ đối tượng dict.
loaded_r, vì bạn đã có nórchưa?