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 str
và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ór
chưa?