json 原因:需要类似字节的对象,而不是“str”

wwodge7n  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(119)

我要写的内容:

sample = {'Details': [{'user1': '{"d8": "X121", "d0": "NIL", "d4": false, "d3": false, "d2": false}', 'name': 'set a sample'}], 'person1': 1}

使用代码:

s1 = json.dumps(sample).replace('"', '"').replace("'", "'")
ftp = ssh.open_sftp()
ftp.putfo(BytesIO(s1), 'newfile.txt')

但虎子错误:
原因:需要类似字节的对象,而不是“str”
编辑二:

import json
        per_json = {'d8': 'X121',
    'd0': 'NIL',
    'd4': False,
    'd3': False,
    'd2': False}
        p1 = {
            "name" : "set a sample"
        }

        p1["additional_info"] = json.dumps(per_json)
        p1_list={"person1":1}
        p1_list["Details"]=[p1]
        s1 = json.dumps(p1_list).replace('}"', "}").replace('"{', "{").replace('\\"', '"')
        ftp = ssh.open_sftp()
        ftp.putfo(s1, 'newfile.txt')
        ftp.close()

原因:'str'对象没有属性'read'

igetnqfo

igetnqfo1#

JSON的一部分仍然是字符串。
这个应该可以

s1 = json.dumps(sample).replace('}"', "}").replace('"{', "{").replace('\\"', '"')

使用json.loads(s1)解析s1将返回以下JSON

{'Details': [{'user1': {'d8': 'X121',
    'd0': 'NIL',
    'd4': False,
    'd3': False,
    'd2': False},
   'name': 'set a sample'}],
 'person1': 1}

相关问题