Converter o dicionário para JSON em python
r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))
Não consigo aceder aos meus dados no json. O que estou a fazer de errado?
TypeError: string indices must be integers, not str
148
Author: Tim Castelijns, 2014-11-05
3 answers
json.dumps()
converte um dicionário para um objecto str, não um objecto JSON(dict)! então você tem que carregar seu str em um dict para usá-lo usando json.loads()
método
Ver {[1] } como um método de gravação e json.loads()
como um método de recuperação.
Esta é a amostra de código que pode ajudá-lo a compreendê-la melhor:
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
243
Author: Iman Mirzadeh, 2017-11-15 09:38:26
json.dumps()
devolve a representação de texto JSON do dict em python. ver os documentos.
Você não pode fazer {[[2]} porque r é uma cadeia, não um dict mais {[[7]} Talvez quisesses dizer algo como ...
r = {'is_claimed': 'True', 'rating': 3.5}
json = json.dumps(r) # note i gave it a different name
file.write(str(r['rating']))
14
Author: Tim Castelijns, 2014-11-04 21:44:32
Não é necessário convertê-lo numa cadeia de caracteres usando json.dumps()
r = {'is_claimed': 'True', 'rating': 3.5}
file.write(r['is_claimed'])
file.write(str(r['rating']))
Pode obter os valores directamente do objecto dict.
-1
Author: user3273866, 2018-07-24 13:18:27