convertir una cadena json en un objeto python

¿Es posible convertir una cadena json (por ejemplo, la que se devuelve del servicio de búsqueda json de twitter) en objetos de cadena simples? Aquí hay una pequeña representación de los datos devueltos por el servicio json:

{ results:[...], "max_id":1346534, "since_id":0, "refresh_url":"?since_id=26202877001&q=twitter", . . . } 

Digamos que de alguna manera almaceno el resultado en alguna variable, digamos, obj . Estoy buscando obtener valores apropiados como los siguientes:

 print obj.max_id print obj.since_id 

He intentado usar simplejson.load() y json.load() pero me dio un error al decir que 'str' object has no attribute 'read'

He intentado usar simplejson.load() y json.load() pero me dio un error al decir que 'str' object has no attribute 'read'

Para cargar desde una cadena, use json.loads() (note las ‘s’).

Más eficientemente, omita el paso de leer la respuesta en una cadena, y simplemente pase la respuesta a json.load() .

si no sabe si los datos serán un archivo o una cadena … use

 import StringIO as io youMagicData={ results:[...], "max_id":1346534, "since_id":0, "refresh_url":"?since_id=26202877001&q=twitter", . . . } magicJsonData=json.loads(io.StringIO(str(youMagicData)))#this is where you need to fix print magicJsonData #viewing fron the center out... #youMagicData{}>str()>fileObject>json.loads #json.loads(io.StringIO(str(youMagicData))) works really fast in my program and it would work here so stop wasting both our reputation here and stop down voting because you have to read this twice 

de https://docs.python.org/3/library/io.html#text-io

json.loads de las bibliotecas integradas de python, json.loads requiere un objeto de archivo y no comprueba lo que ha pasado, por lo que aún llama a la función de lectura sobre lo que pasó porque el objeto de archivo solo entrega datos cuando llama a read () . Entonces, debido a que la clase de cadena incorporada no tiene la función de lectura, necesitamos un contenedor. Entonces, en resumen, la función StringIO.StringIO, subclasifica la clase de cadena y la clase de archivo y combina el funcionamiento interno escucha mi reconstrucción de bajo detalle https://gist.github.com/fenderrex/843d25ff5b0970d7e90e6c1d7e4a06b1 así que al final de todo lo que está escrito, un archivo ram y jsoning en una línea …

 magicJsonData=json.loads(io.StringIO((youMagicData).decode("utf-8")) print(magicJsonData) 

La cadena json de cualquier solicitud o servidor http es de tipo matriz de bytes para convertirlos en cadena, (ya que la pregunta es acerca de la matriz de bytes devuelta desde una solicitud de servidor, ¿verdad?)

 res = json.loads((response.content).decode("utf-8") ) print(res) 

aquí el response.content puede ser una matriz de bytes o cualquier cadena devuelta desde la solicitud del servidor que se decodifica a formato de cadena (utf-8) y se devuelve como una matriz de Python.

O simplemente use un bytearray pero use json.load en lugar de json.loads