2010-02-26 111 views
0

我在很多地方得到錯誤試圖從http://d.yimg.com/autoc.finance.yahoo.com/autoc?callback=YAHOO.Finance.SymbolSuggest.ssCallback&query=Wal-MartJSON解析錯誤 - 在

檢索股票代碼爲美國公司的時候意外的標記我曾嘗試:

resp = Net::HTTP.get_response(URI.parse(url)) 
data = resp.body 
qwe = data.split("symbol") 
p qwe[1] 
arr1 = data.split("(") 
arr2 = arr1[1].split(")") 
fnl = arr2[0].gsub(/-/, '') 
fnl = fnl.gsub(/\(/, '') 
fnl = fnl.gsub(/\)/, '') 
fnl = fnl.gsub(/\./, '') 
fnl = fnl.gsub('\'', '"') 
fnl = fnl.gsub(/([\{|\,}])\s*([a-zA-Z]+):/, '\1 "\2":') 

但這並不幫助,因爲我看到:

/Library/Ruby/Gems/1.8/gems/json-1.2.0/lib/json/common.rb:123:in`parse':353:'{「符號處的意外標記「:」BEEV「,」名稱「:」BENCHMARK ENERGY CORP「(JSON :: ParserError)

任何線索,我可能做錯了什麼?

回答

0

我不知道你爲什麼要做所有的替換。一旦你去掉函數調用,它就可以正常工作:

>>> pprint.pprint(json.loads(t[39:-1])) 
{'ResultSet': {'Query': 'wal-mart', 
       'Result': [{'exch': 'NYQ', 
          'exchDisp': 'NYSE', 
          'name': 'Wal-Mart Stores Inc.', 
          'symbol': 'WMT', 
          'type': 'S'}, 
          {'exch': 'MEX', 
          'exchDisp': 'Mexico', 
          'name': 'WAL-MART-V', 
          'symbol': 'WALMEXV.MX', 
          'type': 'S'}, 
          {'exch': 'TLX', 
          'name': 'WAL-MART STORES', 
          'symbol': '984101.TI', 
          'type': 'S'}, 
          {'exch': 'HAM', 
          'exchDisp': 'Hamburg', 
          'name': 'WAL-MART STORES', 
          'symbol': 'WMT.HM', 
          'type': 'S'}, 
          {'exch': 'STU', 
          'exchDisp': 'Stuttgart', 
          'name': 'WAL-MART-V', 
          'symbol': '4GN.SG', 
          'type': 'S'}, 
          {'exch': 'FRA', 
          'exchDisp': 'Frankfurt', 
          'name': 'WAL-MART STORES', 
          'symbol': 'WMT.F', 
          'type': 'S'}, 
          {'exch': 'FRA', 
          'exchDisp': 'Frankfurt', 
          'name': 'WAL-MART-V', 
          'symbol': '4GN.F', 
          'type': 'S'}, 
          {'exch': 'BER', 
          'exchDisp': 'Berlin', 
          'name': 'WAL-MART STORES', 
          'symbol': 'WMT.BE', 
          'type': 'S'}, 
          {'exch': 'STU', 
          'exchDisp': 'Stuttgart', 
          'name': 'WAL-MART STORES', 
          'symbol': 'WMT.SG', 
          'type': 'S'}, 
          {'exch': 'BUE', 
          'exchDisp': 'Buenos Aires', 
          'name': 'WAL-MART STORES INC 2', 
          'symbol': 'DWMT2.BA', 
          'type': 'S'}]}}