Ошибка разбора json в ruby ​​- неожиданный токен в - PullRequest
0 голосов
/ 26 февраля 2010

Я получаю ошибки во многих местах при попытке получить символы тикера для американских компаний из http://d.yimg.com/autoc.finance.yahoo.com/autoc?callback=YAHOO.Finance.SymbolSuggest.ssCallback&query=Wal-Mart

Я пытался:

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" "name": "BENCHMARK ENERGY CORP '(JSON :: ParserError)

Какие-нибудь подсказки относительно того, что я могу делать неправильно?

1 Ответ

0 голосов
/ 26 февраля 2010

Я не знаю, почему вы делаете все эти замены. Он работает нормально, если вы удалите вызов функции:

>>> 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'}]}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...