Я новичок в написании сценариев на Python. Я пытаюсь разобрать json key_value на stdout. Ниже мой сценарий. Помогите мне исправить ошибку, указанную ниже.
pt = "{'outval': 1.132805, 'max': 1.13283, 'to': 1534326908, 'bvalue': 1.13274, 'min': 1.132805, 'from': 1534326907, 'cvalue': 1.132825, 'at': 1534326907164488223, 'avalue': 1.13291, 'size': 1, 'aid': 1, 'vl': 0, 'id': 17777726}"
print(pt["outval"])
print(pt["to"])
print(pt["from"])
Ошибка :
Traceback (most recent call last):
File "j.py", line 5, in <module>
print(pt["outval"])
TypeError: string indices must be integers, not str
Ожидаемый результат:
1.132805
1534326908
1534326907
заранее спасибо
Спасибо, ребята, преобразовал в диктатор. Теперь я получил нужный результат.






Спасибо, Джон, за идею. Я использовал ast.literal_eval для извлечения необходимой пары ключей. Ниже мой обновленный код.
import json
import ast
pt = "{'outval': 1.132805, 'max': 1.13283, 'to': 1534326908, 'bvalue': 1.13274, 'min': 1.132805, 'from': 1534326907, 'cvalue': 1.132825, 'at': 1534326907164488223, 'avalue': 1.13291, 'size': 1, 'aid': 1, 'vl': 0, 'id': 17777726}"
s=ast.literal_eval(pt)
print(s['outval'])
print(s['to'])
print(s['from'])
выход :
root@lamp-1-vm:~/1# python j.py
1.132805
1534326908
1534326907
Как вы, вероятно, заметили, исходная строка недействительна в формате JSON. Если процесс, который производит эту строку, вы можете контролировать, вы захотите изменить это, чтобы использовать json.dump / json.dumps вместо записи str(dict).
Ах, да ... Я полностью просмотрел тот факт, что у вас были ', а не " в стиле JSON ... :)
Вы смотрели, как сделать
json.loads(pt), чтобы получитьdict, а не просто строку?