我试过:
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)
关于我可能做错什么的任何线索?
答案 0 :(得分: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'}]}}