0

Yahoo BOSS マッシュアップ フレームワークをインストールしようとしましたが、提供されたサンプルの実行に問題があります。例 1、2、5、および 6 は機能しますが、3 と 4 では Expat エラーが発生します。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

Digg.com にクエリを実行しようとすると、どちらの例も失敗しているようです。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")
4

2 に答える 2

0

これは例のエラーに違いないと思います: JSON の結果を取得しています (実際、その URL をコピーしてブラウザーに貼り付けると、search.json で始まるファイル名がダウンロードされます。

{"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",

つまり、完全に通常の JSON; しかし、json や simplejson などのモジュールを使用して解析する代わりに、XML として解析しようとしますが、明らかにこの試みは失敗します。

私は、修正 (コードを組み込むことができるようにそのコードを維持しているすべての人に注意を向ける必要があるかもしれません) は、JSON 出力の代わりに XML を要求するか、結果の JSON を検索しようとする代わりに適切な手段で解析することのいずれかであると考えています。それをXMLとして(私はそのコードに慣れていないので、どちらの変更を実装するのが最適なのかわかりません)。

于 2009-09-14T14:58:04.167 に答える