Pregunta

Intenté instalar el marco de mashup de Yahoo BOSS, pero tengo problemas para ejecutar los ejemplos proporcionados. Los ejemplos 1, 2, 5 y 6 funcionan, pero 3 & amp; 4 dan errores de Expat. Aquí está la salida de ex3.py:

gpython examples/ex3.py
    examples/ex3.py:33: Warning: 'as' will become a reserved keyword in Python 2.6
Traceback (most recent call last):
  File "examples/ex3.py", line 27, in <module>
    digg = db.select(name="dg", udf=titlef, url="http://digg.com/rss_search?search=google+android&area=dig&type=both&section=news")
  File "/usr/lib/python2.5/site-packages/yos/yql/db.py", line 214, in select
    tb = create(name, data=data, url=url, keep_standards_prefix=keep_standards_prefix)
  File "/usr/lib/python2.5/site-packages/yos/yql/db.py", line 201, in create
    return WebTable(name, d=rest.load(url), keep_standards_prefix=keep_standards_prefix)
  File "/usr/lib/python2.5/site-packages/yos/crawl/rest.py", line 38, in load
    return xml2dict.fromstring(dl)
  File "/usr/lib/python2.5/site-packages/yos/crawl/xml2dict.py", line 41, in fromstring
    t = ET.fromstring(s)
  File "/usr/lib/python2.5/xml/etree/ElementTree.py", line 963, in XML
    parser.feed(text)
  File "/usr/lib/python2.5/xml/etree/ElementTree.py", line 1245, in feed
    self._parser.Parse(data, 0)
    xml.parsers.expat.ExpatError: syntax error: line 1, column 0

Parece que ambos ejemplos están fallando al intentar consultar Digg.com. Aquí está la consulta que se construye en el código de ex3.py:

diggf = lambda r: {"title": r["title"]["value"], "diggs": int(r["diggCount"]["value"])}
digg = db.select(name="dg", udf=diggf, url="http://digg.com/rss_search?search=google+android&area=dig&type=both&section=news")
¿Fue útil?

Solución

El problema es la cadena de búsqueda digg. Debería ser " s = " ;. No " search = "

Otros consejos

Creo que debe ser un error en el ejemplo: está obteniendo un resultado JSON (de hecho, si copia y pega esa URL en su navegador, descargará un archivo con los nombres search.json que comienza con

{"results":[{"profile_image_url":
"http://a3.twimg.com/profile_images/255524395/KEN_OMALLEY_REVISED_normal.jpg",
"created_at":"Mon, 14 Sep 2009 14:52:07 +0000","from_user":"twilightlords",

es decir JSON perfectamente normal; pero luego, en lugar de analizarlo con módulos como json o simplejson, intenta analizarlo como XML, y obviamente este intento falla.

Creo que la solución (que probablemente deba señalarse a la persona que mantiene ese código para que puedan incorporarlo) es pedir XML en lugar de la salida JSON, o analizar el JSON resultante con los medios apropiados en lugar de tratando de verlo como XML (no estoy seguro de cómo implementar mejor cualquier cambio, ya que no estoy familiarizado con ese código).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top