Tôi đang cố gắng lấy khóa từ giá trị mà tôi được trả về, nhưng khi tôi sử dụng cách tiếp cận dễ dàng để chỉ nhận giá trị của một khóa cụ thể tôi nhận được lỗi: LoạiError: chỉ mục chuỗi phải là số nguyên, chứ không phải là sốLoạiError: chuỗi chỉ số phải là số nguyên, không str // Cố gắng lấy giá trị của khóa
Tôi cũng đã thử phương thức .get() nhưng cũng không hoạt động. Ai đó có thể xin vui lòng chỉ cho tôi những gì tôi đang làm sai?
>>> import urllib2
>>> url = 'http://192.168.250.1/ajax.app?SessionId=8ef05397-ef00-451a-bc1c-c0d61
5a4811d&service=getDp&plantItemId=1413'
>>> response = urllib2.urlopen(url)
>>> dict = response.read()
>>> dict
'{"service":"getDp","plantItemId":"1413","value":" 21.4","unit":"\xc2\xb0C"}'
>>> dict['value']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string indices must be integers, not str
Cần lưu ý rằng điều này sẽ trả về giá trị unicode một cách chính xác cho 'đơn vị' trong khi giải pháp 'literal_eval' sẽ trả về chuỗi byte trên Python 2 hoặc sai trên Python 3. – Duncan
Tôi có thể hỏi tại sao tôi được trả về - u '21.3 - Tại sao "u" đó? – narn
Điều đó có nghĩa là chuỗi ở dạng unicode – Belphegor