如何在Python中解析YAHOO.Finance.SymbolSuggest.ssCallback的结果

2024-06-02 07:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python 3,并尝试使用YAHOO.Finance.SymbolSuggest.ssCallback从公司名称中获取可能的股票符号列表

使用下面的代码

import urllib

yahoo_url = 'http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=apple+inc&region=1&lang=en&callback=YAHOO.Finance.SymbolSuggest.ssCallback'

response = urllib.request.urlopen(yahoo_url)

str_response = response.read().decode('utf-8')

结果如下:

str_response
Out[136]: 'YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"AAPL","Result":[{"symbol":"AAPL","name":"Apple Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"^NY2LAAPL","name":"ICE Leveraged 2x AAPL Index","exch":"NYS","type":"I","exchDisp":"NYSE","typeDisp":"Index"},{"symbol":"AAPL.BA","name":"Apple Inc.","exch":"BUE","type":"S","exchDisp":"Buenos Aires","typeDisp":"Equity"},{"symbol":"AAPL34.SA","name":"Apple Inc.","exch":"SAO","type":"S","exchDisp":"Sao Paolo","typeDisp":"Equity"},{"symbol":"AAPL.MX","name":"Apple Inc.","exch":"MEX","type":"S","exchDisp":"Mexico","typeDisp":"Equity"},{"symbol":"AAPL.MI","name":"APPLE","exch":"MIL","type":"S","exchDisp":"Milan","typeDisp":"Equity"},{"symbol":"AAPLD.BA","name":"APPLE INC","exch":"BUE","type":"S","exchDisp":"Buenos Aires","typeDisp":"Equity"},{"symbol":"AAPLC.BA","name":"APPLE INC","exch":"BUE","type":"S","exchDisp":"Buenos Aires","typeDisp":"Equity"},{"symbol":"AAPL.VI","name":"Apple Inc.","exch":"VIE","type":"S","exchDisp":"Vienna","typeDisp":"Equity"}]}});'

如何仅提取以下段?然后写进字典

"Result":[{"symbol":"AAPL","name":"Apple Inc.","exch":"NMS","type":"S","exchDisp":"NASDAQ","typeDisp":"Equity"},{"symbol":"^NY2LAAPL","name":"ICE Leveraged 2x AAPL Index","exch":"NYS","type":"I","exchDisp":"NYSE","typeDisp":"Index"},{"symbol":"AAPL.BA","name":"Apple Inc.","exch":"BUE","type":"S","exchDisp":"Buenos Aires","typeDisp":"Equity"},{"symbol":"AAPL34.SA","name":"Apple Inc.","exch":"SAO","type":"S","exchDisp":"Sao Paolo","typeDisp":"Equity"},{"symbol":"AAPL.MX","name":"Apple Inc.","exch":"MEX","type":"S","exchDisp":"Mexico","typeDisp":"Equity"},{"symbol":"AAPL.MI","name":"APPLE","exch":"MIL","type":"S","exchDisp":"Milan","typeDisp":"Equity"},{"symbol":"AAPLD.BA","name":"APPLE INC","exch":"BUE","type":"S","exchDisp":"Buenos Aires","typeDisp":"Equity"},{"symbol":"AAPLC.BA","name":"APPLE INC","exch":"BUE","type":"S","exchDisp":"Buenos Aires","typeDisp":"Equity"},{"symbol":"AAPL.VI","name":"Apple Inc.","exch":"VIE","type":"S","exchDisp":"Vienna","typeDisp":"Equity"}]

先谢谢你


Tags: nameappletypesymbolincbaexchaapl
1条回答
网友
1楼 · 发布于 2024-06-02 07:49:18

将字符串转换为dict

from ast import literal_eval

result = literal_eval(str_response[39:-2])

print(type(result))
>>> dict

# Result key of interest
Result = result['ResultSet']['Result']

print(Result)

[{'symbol': 'AAPL',
  'name': 'Apple Inc.',
  'exch': 'NMS',
  'type': 'S',
  'exchDisp': 'NASDAQ',
  'typeDisp': 'Equity'},
 {'symbol': '^NY2LAAPL',
  'name': 'ICE Leveraged 2x AAPL Index',
  'exch': 'NYS',
  'type': 'I',
  'exchDisp': 'NYSE',
  'typeDisp': 'Index'},
 {'symbol': 'AAPL.BA',
  'name': 'Apple Inc.',
  'exch': 'BUE',
  'type': 'S',
  'exchDisp': 'Buenos Aires',
  'typeDisp': 'Equity'},
 {'symbol': 'AAPL34.SA',
  'name': 'Apple Inc.',
  'exch': 'SAO',
  'type': 'S',
  'exchDisp': 'Sao Paolo',
  'typeDisp': 'Equity'},
 {'symbol': 'AAPL.MX',
  'name': 'Apple Inc.',
  'exch': 'MEX',
  'type': 'S',
  'exchDisp': 'Mexico',
  'typeDisp': 'Equity'},
 {'symbol': 'AAPL.MI',
  'name': 'APPLE',
  'exch': 'MIL',
  'type': 'S',
  'exchDisp': 'Milan',
  'typeDisp': 'Equity'},
 {'symbol': 'AAPLD.BA',
  'name': 'APPLE INC',
  'exch': 'BUE',
  'type': 'S',
  'exchDisp': 'Buenos Aires',
  'typeDisp': 'Equity'},
 {'symbol': 'AAPLC.BA',
  'name': 'APPLE INC',
  'exch': 'BUE',
  'type': 'S',
  'exchDisp': 'Buenos Aires',
  'typeDisp': 'Equity'},
 {'symbol': 'AAPL.VI',
  'name': 'Apple Inc.',
  'exch': 'VIE',
  'type': 'S',
  'exchDisp': 'Vienna',
  'typeDisp': 'Equity'}]

相关问题 更多 >