首页 > 解决方案 > Python JSON编码无效的json格式

问题描述

我卡住了,我有一个带有符号的json,比如'值和语法中的'and"

示例混合双 qoute 和单 qoute链接

json ={
 'key': "val_'_ue",
 'secondkey': 'value'
}

使用 json 加载和 json 转储,我得到了一种str类型而不是 adict来迭代,有什么想法可以修复它吗?

        print(postParams)# = {'csrf-token': "TOKEN_INCLUDES_'_'_symbols", 'param2': 'params2value'}

        jsn_dict2 = json.loads(json.dumps(postParams))
        print(type(jsn_dict2)) # ERROR HERE why str and not dict
        
        for key, val in jsn_dict2.items():
            print("key="+str(key))

标签: pythoncharacter-encoding

解决方案


您不需要dumps()已经字符串 json 数据:

jsn_dict = json.loads(json.dumps(res)) 

应该 :

jsn_dict = json.loads(res) 

更新

根据评论,数据看起来像这样:

postParams = "{'csrf-token': \"TOKEN_INCLUDES_'_'_symbols\", 'add-to-your-blog-submit-button': 'add-to-your-blog-submit-button'}"

所以我找到了一个可以帮助损坏的 json 字符串的库,如下所示:

  • 首轮 :

    pip install demjson

  • 那么这段代码可以帮助你:

from demjson import decode
data = decode(postParams)
data
>>> {'csrf-token': "TOKEN_INCLUDES_'_'_symbols",
 'add-to-your-blog-submit-button': 'add-to-your-blog-submit-button'}


推荐阅读