【问题标题】:How to convert a string-type Dictionary in a list into Dictionary如何将列表中的字符串类型字典转换为字典
【发布时间】:2021-07-25 16:08:55
【问题描述】:

以下代码将返回一个字符串,该字符串实际上是一个列表中的一系列字典。

import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent

ua = UserAgent()
headers = {'User-Agent': ua.random}
    
response = requests.get('https://financialmodelingprep.com/api/v3/historical-market-capitalization/AAPL?limit=5&apikey=dd06415919d31913455307c546a9ea28', headers = headers)
content = response.content
parser = BeautifulSoup(content, 'html.parser')
parser_text = parser.text

parser_text的返回值为

[{ “符号”:“AAPL”, “日期”:“2021-04-30”, “市值”:2225506979220 }, { “符号”:“AAPL”, “日期”:“2021-04-29”, “市值”:2259703876360 }, { “符号”:“AAPL”, “日期”:“2021-04-28”, “市值”:2286046443040 }, { “符号”:“AAPL”, “日期”:“2021-04-27”, “市值”:2299908530320 }, { “符号”:“AAPL”, “日期”:“2021-04-26”, “市值”:2305556047360 } ]

如何将 parser_text 转换为包含每个字典作为元素的列表

['{“符号”:“AAPL”,“日期”:“2021-04-30”,“marketCap”:2225506979220 }','{“符号”:“AAPL”,“日期”:“2021 -04-29", "marketCap" : 2259703876360 }', '{ "symbol" : "AAPL", "date" : "2021-04-28", "marketCap" : 2286046443040 }', '{ "symbol" : “AAPL”,“日期”:“2021-04-27”,“marketCap”:2299908530320 }','{“符号”:“AAPL”,“日期”:“2021-04-26”,“marketCap”: 2305556047360 }' ]

【问题讨论】:

  • BeautifulSoup 用于解析 HTML 数据。看起来您的响应是 JSON 数据。

标签: python


【解决方案1】:

我们可以使用请求库本身来解析响应json

import requests
import json

response = requests.get("https://financialmodelingprep.com/api/v3/historical-market-capitalization/AAPL?limit=5&apikey=dd06415919d31913455307c546a9ea28")
return_dict = response.json()
print(return_dict)

我在这里没有看到 BeautifulSoup 或任何其他外部解析器的用例。

【讨论】:

    【解决方案2】:

    你可以使用 json.loads

    import json
    import requests
    from fake_useragent import UserAgent
    
    ua = UserAgent()
    headers = {'User-Agent': ua.random}
        
    response = requests.get('https://financialmodelingprep.com/api/v3/historical-market-capitalization/AAPL?limit=5&apikey=dd06415919d31913455307c546a9ea28', headers = headers)
    content = response.content
    parser_text = json.loads(content)
    

    【讨论】:

    • 这里bs4有什么用?
    • 他可以通过请求直接做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 2011-07-12
    • 2014-05-23
    • 2019-05-29
    相关资源
    最近更新 更多