[英]Python extract json structure from html page
在 python 中,我正在閱讀包含很多內容的 html 頁面內容。 為此,我通過這種方式將網頁作為字符串讀取:
url = 'https://myurl.com/'
reqq = req.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
reddit_file = req.urlopen(reqq)
reddit_data = reddit_file.read().decode('utf-8')
如果我打印reddit_data
我可以正確看到整個 html 內容。 現在,在它里面有一個像 json 這樣的結構,我想從中讀取並提取一些字段。
結構下方:
"dealDetails" : {
"f240141a" : {
"egressUrl" : "https://ccc.com",
"title" : "ZZZ",
"type" : "ghi",
},
"5f9ab246" : {
"egressUrl" : "https://www.bbb.com/",
"title" : "YYY",
"type" : "def",
},
"2bf6723b" : {
"egressUrl" : "https://www.aaa.com//",
"title" : "XXX",
"type" : "abc",
},
}
我想做的是:找到dealDetails
字段,然后為每個f240141a
5f9ab246
2bf6723b
獲取 egressURL、標題和類型值。
謝謝
嘗試這個,
[nested_dict['egressUrl'] for nested_dict in reddit_data['dealDetails'].keys()]
要訪問 JSON 的值,您可以將其視為字典並使用相同的語法來訪問值。
編輯-1:
確保您的 reddit_data 類型是字典。
如果type(reddit_data)
是str
。
你需要做..
import ast
reddit_data = ast.literal_eval(reddit_data)
或者
import json
reddit_data = json.loads(reddit_data)
[(i['egressUrl'], i['title'], i['type']) for i in reddit_data['dealDetails'].keys()]
dictionary = eval(reddit_data)
這會將整個文件轉換為字典,我建議您僅在“看起來”像字典的部分文本上使用它,(eval 不受歡迎的原因之一是它不會轉換像' true'/'false' 到 Python 的 True/False:要小心 :) )
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.