我很困惑为什么这不起作用。我正在尝试在JSON中添加变量值,每次添加它时,它在JSON字符串中均无法正确显示。
hostname = "machineA.host.com"
我需要将以上主机名信息添加到以下JSON文档中-
b"{\"Machine Name\":\"\"+hostname+\"\"}", None, True)
但是每当我以上述方式添加它时,它就根本不起作用。
不知道我在这里做什么错?
您正在转义"字符串中的内部双引号。它应该是:
"
b"{\"Machine Name\":\""+hostname+"\"}", None, True)
在python中,您还可以'对字符串使用单引号-并且不需要在单引号字符串内转义双引号
'
b'{"Machine Name":"'+hostname+'"}', None, True)
不过,有两种更好的方法可以做到这一点。第一种是字符串格式,它将变量插入到字符串中:
b'{"Machine Name":"%s"}' % hostname # python 2.x (old way) b'{{"Machine Name":"{0}"}}'.format(hostname) # python >= 2.6 (new way - note the double braces at the ends)
接下来是Python JSON模块,方法是将python dict转换为JSON字符串
dict
>>> hostname = "machineA.host.com" >>> data = {'Machine Name': hostname} >>> json.dumps(data) '{"Machine Name": "machineA.host.com"}'
这可能是首选方法,因为它将处理主机名和其他字段中的怪异字符,以确保末尾具有有效的JSON。
您是否有理由使用 bytestring
bytestring