python中json.loads 返回类型是str 而不是 dict


  

解析本地文件中的Json文件时,json.loads 之后的返回类型是str ,直接上代码

import json

with open ("urlJson.txt",'r',encoding='utf-8') as f:
    data = f.read()
    json_str = json.dumps(data)
    print (type(json_str))
    #print("Python 原始数据:", repr(data))
    #print("JSON 对象:", json_str)

    params_json = json.loads(json_str)
    #print (params_json)
    print (type(params_json))  

运行结果:

<class 'str'>
<class 'str'>

Process finished with exit code 0

  

对此很困惑,看到很奇怪,网上到处都是提示loads 返回的是dict对象。

解决方案:

再loads一次就好了

import json

with open ("urlJson.txt",'r',encoding='utf-8') as f:
    data = f.read()
    json_str = json.dumps(data)
    print (type(json_str))
    #print("Python 原始数据:", repr(data))
    #print("JSON 对象:", json_str)

    params_json = json.loads(json_str)
    #print (params_json)
    print (type(params_json))
    # 再次loads 下
    params_json = json.loads(params_json)
    print (type(params_json))

执行结果:

<class 'str'>
<class 'str'>
<class 'dict'>

Process finished with exit code 0

  

 

参考:

https://bbs.csdn.net/topics/392468521

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM