[英]How to read/fix incorrect har file form to be read by python?
使用 python 我想讀取 har 文件的內容,但 har 文件的格式似乎不正確。 我擁有的 har 文件如下所示:
"{\n \"log\": {\n \"version\": \"1.2\",\n \"creator\": {\n \"name\": \"Selenium Wire HAR dump\",\n \"version\": \"0.1\",\n \"comment\": \"Selenium Wire version 4.6.3\"\n },\n \"entries\": [\n {\n \"startedDateTime\": \"2022-03-21T15:44:16.496471+00:00\",\n \"time\": 200,\n \"request\": {\n \"method\": \"GET\",\n \"url\": \"http://sscx-portal.ocp.bbp.epfl.ch/sscx-portal/digital-reconstructions/neurons?brain_region=S1DZO&layer=L23&etype=bAC&mtype=L23_LBC&memodel=L23_LBC_bAC_2\",\n \"httpVersion\": \"HTTP/1.1\",\n \"cookies\": [],\n \"headers\": [\n {\n \"name\": \"Host\",\n \"value\": \"sscx-portal.ocp.bbp.epfl.ch\"\n },\n {\n \"name\": \"Upgrade-Insecure-Requests\",\n \"value\": \"1\"\n },\n {\n \"name\": \"User-Agent\",\n \"value\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36\"\n },\n {\n \"name\": \"Accept\",\n \"value\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"\n },\n {\n \"name\": \"Accept-Encoding\",\n \"value\": \"gzip, deflate\"\n },\n {\n \"name\": \"Accept-Language\",\n \"value\": \"en-US,en;q=0.9\"\n }\n ],\n \"queryString\": [\n {\n \"name\": \"brain_region\",\n \"value\": \"S1DZO\"\n },\n {\n \"name\": \"layer\",\n \"value\": \"L23\"\n },\n {\n \"name\": \"etype\",\n \"value\": \"bAC\"\n },\n {\n \"name\": \"mtype\",\n \"value\": \"L23_LBC\"\n },\n {\n \"name\": \"memodel\",\n \"value\":...
因此我無法將其讀作 json。
如何將其轉換為 json?
解決方案是使用ast
“取消轉義”那一堆文本。 然后可以將其讀作 json:
with open("myfile.har") as f:
data = json.loads(ast.literal_eval(f.read()))
print(data["log"].keys())
這給了 output
dict_keys(['version', 'creator', 'entries'])
然后你可以從那里拿走它。
我建議不要使用haralyzer ,因為它似乎沒有維護(仍然是 python2 語法),並且它不像示例所示那樣工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.