【Charles】【完美解决】导入文件时报错 Import Failed | MalformedJson: Unterminated object at line 1 column xxx path $.log.entries[1].response.content.text

一、问题

1.1、Charles中导出会话(比如导出后的文件为 a.har 文件)

1.2、把 a.har 文件导入Charles中(有时会报如下图所示的错误)

Import Failed | MalformedJson: Unterminated object at line 1 column xxx path $.log.entries[1].response.content.text

 

 

 

二、分析

2.1、其实charles导出的文件 内容是一个json格式的文件

2.2、response.content.text 的字符串中的双引号在导出时未做转义 所以在导入时不能识别为json格式 即报错

 

三、解决

判断 response.content.text 字符串中是否包含双引号 “ " ” 若有 则替换为 ” \" “  也就是转个义即可

 

四、代码

复制代码
if __name__ == '__main__':
    # charles导出的文件(仅需修改这个即可)
    charles_export_file = 'C:\\Users\Administrator\Desktop\charles导出的文件.har'

    with open(charles_export_file, encoding='utf-8') as f:
        result = f.readlines()
    result_json = json.loads(result[0])
    entries = result_json['log']['entries']

    for i in entries:
        for i_header in i['response']['headers']:
            for i_key, i_value in i_header.items():
                if i_value == 'Content-Type' and i_header['value'].startswith('text/'):
                    s = '【已替换】type:{}'.format(i_header['value'])
                    print(s.ljust(20), i['request']['url'])
                    # 查找text中的双引号 并转义
                    response_str_old = str(i['response']['content']['text'])
                    response_str_new = response_str_old.replace('"', '\\"')
                    break
    new_file = ''
    file_list = charles_export_file.split('\\')
    file_list[len(file_list) - 1] = '可正常导入_{}'.format(file_list[len(file_list) - 1])
    for i in file_list:
        new_file += i
        new_file += '\\'
    # 删除最后一个 \
    new_file = new_file[:-1]
    result_json = json.dumps(result_json)
    with open(new_file, 'w') as f:
        f.writelines(result_json)
复制代码

 

posted @   淡怀  阅读(2719)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示

目录导航