python 字符串和字典转换提示如下错误:
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

 data = {
        'aa': 'sssdfads',
        'bb': '11.11.11.11',
        'cc': '11',
        'dd': 'dd',
    }
    data = json.dumps(data)
    #以下内容是base64编码
    data = data.encode("utf-8")
    str_url = base64.b64encode(data)  # 被编码的参数必须是二进制数据
    print(str_url)
    aa = base64.b64decode(str_url).decode("utf-8")
    print(aa)
    print(type(aa))

    aa = json.loads(aa)
    print(type(aa))
    print(aa['cc'])

第一种解决方法:
json.dumps(): 对数据进行编码。
json.loads(): 对数据进行解码。
该方法不需要对字典进行特殊处理了;
第二种解决方法:
首先使用str(data) 将字典转化为字符串
使用eval python和字典是一家~

 data = {
        'aa': 'sssdfads',
        'bb': '11.11.11.11',
        'cc': '11',
        'dd': 'dd',
    }
    data = str(data)
    #以下内容是base64编码
    data = data.encode("utf-8")
    str_url = base64.b64encode(data)  # 被编码的参数必须是二进制数据
    print(str_url)
    aa = base64.b64decode(str_url).decode("utf-8")
    print(aa)
    print(type(aa))

    aa = eval(aa)
    print(type(aa))
    print(aa['cc'])
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐