簡體   English   中英

如何讀取/修復 python 讀取的不正確的 har 文件格式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM