使用json将str转化为dict

在爬某招聘网站的时候想要将爬到的信息保存到json文件中但是始终无法将之转化为字典,查遍很多方法还是无法解决,请问各位有什么见解吗?

img

dumps 是将字典转str,即json
loads 是将str即json转字典

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7682562
  • 你也可以参考下这篇文章:Python接口自动化响应结果json格式化输出+断言响应结果中指定的属性值+其他
  • 除此之外, 这篇博客: python之json序列化与反序列化中的 2. 、json.dump()用于将dict类型的数据转成str,并写入到json文件中。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • import json    
        
    name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}    
                
    emb_filename = ('/home/cqh/faceData/emb_json.json')    
      
    # solution 1  
    jsObj = json.dumps(name_emb)      
    with open(emb_filename, "w") as f:    
        f.write(jsObj)    
        f.close()    
          
    # solution 2     
    json.dump(name_emb, open(emb_filename, "w"))  
    
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    针对问题内容中的转换字符串为字典的问题,可以使用json模块将字符串转换为字典。具体操作步骤如下:

    1. 首先确认你爬取的数据存储为字符串格式的json数据,可以先在命令行中查看数据的类型。

    2. 导入json模块,使用json.loads()将字符串转换为字典格式。代码示例如下:

    import json
    
    # 假设data是从网页爬取的json数据字符串
    data = '{"name": "Tom", "age": 18}'
    # 使用json.loads()将字符串转换为字典
    dict_data = json.loads(data)
    # 打印转换后的字典数据
    print(dict_data)
    
    1. 如果无法将json字符串转换为字典,可以尝试先使用json.load()将json文件加载为字符串,然后再使用json.loads()将字符串转换为字典。

    2. 如果json字符串中包含中文或其他特殊字符,可能会导致转换失败,此时可以指定json.loads()中的参数ensure_ascii=Flase,这样可以保持中文、特殊字符等原样输出。代码示例如下:

    # 假设data中包含中文字符
    data = '{"name": "小明", "age": 18}'
    # 指定ensure_ascii参数为False
    dict_data = json.loads(data, ensure_ascii=False)
    # 打印转换后的字典数据
    print(dict_data)
    

    以上是针对如何将字符串转换为字典的解决方案,具体到参考资料中的问题内容,可以按照参考资料中的提取方法获取相应的json数据字符串,然后通过json.loads()将其转换为字典进行处理。例如代码示例如下:

    import json
    import requests
    
    # 请求商品价格json
    p = requests.get('https://p.3.cn/prices/mgets?skuIds=J_' + product_id, headers=header, proxies=random.choice(proxy_list))
    # 获取商品价格
    product_dict = json.loads(p.text)
    
    # 请求评论json
    c = requests.get('https://club.jd.com/comment/productCommentSummaries.action?referenceIds=' + product_id, headers=header, proxies=random.choice(proxy_list))
    comment_dict = json.loads(c.text.split('[')[-1].split(']')[0])
    

    以上代码示例中,分别使用requests模块发送请求获取商品价格和评论的json数据字符串,然后使用json.loads()将其转换为字典进行处理。