Tengo un archivo JSON que contiene tres campos: 2 son cadenas y el tercero es un campo que contiene una lista de valores.
{ "STREAM": "stream",
"BASIS_STREAM": "basis",
"PATHS": "[/opt/path1,/opt/path2]"
}
Ahora cargo ese JSON
with open('/pathToJsonFile.json', 'r') as f:
data = json.load(f)
Ahora quiero obtener esos valores.
stream=str(data["STREAM"])
basis=str(data["BASIS_STREAM"])
paths=data["BASE_PATHS"]
El tema es que paths
también está amenazado como String, aunque tengo que usarlo como lista. Estoy convirtiendo con la str
función de otros campos debido a Unicode. El código debe estar en python2. ¡Muchas gracias!
Solución del problema
Digamos que tiene un archivo llamado data.json
con los siguientes contenidos:
{
"STREAM": "stream",
"BASIS_STREAM": "basis",
"PATHS": "[/opt/path1,/opt/path2]"
}
Tal vez podrías usar después de llamar:str.split
json.load
with open('data.json', 'r') as f:
data = json.load(f)
print 'data = %s' % data
stream = str(data['STREAM'])
basis = str(data['BASIS_STREAM'])
paths = [str(u_s) for u_s in data['PATHS'][1:-1].split(',')]
print 'stream = %s' % stream
print 'basis = %s' % basis
print 'paths = %s' % paths
Producción:
data = {u'PATHS': u'[/opt/path1,/opt/path2]', u'BASIS_STREAM': u'basis', u'STREAM': u'stream'}
stream = stream
basis = basis
paths = ['/opt/path1', '/opt/path2']
No hay comentarios:
Publicar un comentario