因为本人要做一个json请求去连接一个设备接口,该设备对于json的数据格式要求极为严格,对于string必须是双引号而且不能有多余的空格,将python中的dict直接用str()转格式后是单引号切每个冒号、逗号后面会有空格,因此本人手写了一个,有用的到的同行请自取。
def dic_str(data):
st = '{'
for key, val in data.items():
st = st + '"' + key + '"' + ":"
if str(type(val)) == "<class 'str'>": #这里根据不同的需求做不同的拼接
st = st + '"' + str(val) + '"' + ','
elif str(type(val)) == "<class 'int'>":
st = st + str(val) + ','
tem = list(st)
index = len(st) - 1
tem[index] = '}' #必须转换为list才能通过下表修改
result = ''.join(tem) #再将list重新加到str中
return result
if __name__ == '__main__':
data = {
"serialNumber": "864343038900233",
"macAddress": "8c:f7:13:85:7b:f8",
"signKey": 1234
}
result = dic_str(data)
print(result) #函数dic_str效果等同于下面的直接输出
print('{"serialNumber":"864343038900233","macAddress":"8c:f7:13:85:7b:f8","signKey":1234}')
print(str(data))