Python JSON 编码无效 json 格式

Python JSON encoding invalid json format

我卡住了,我有一个 json,在值和语法中有 ''"

等符号

混合双引号和单引号的示例link

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

使用 json 加载和 json 转储,我得到一个 str 类型而不是 dict 来迭代,我有什么办法解决它吗?

        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))

您不需要 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'}

在您的 json 中,您错过了两个键之间的“,”逗号分隔符。 JSON的实际结构是

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

使用

json_actual=json.dumps(json_new)

阅读,

json_read=json.loads(json_actual)