请问如何用json.dumps解决str问题?

时间:2019-05-01 11:38:32

标签: python json string binary

你好,有人可以帮我吗?

TypeError:POST数据应为字节或字节可迭代。不能是str类型。

import json
import urllib.request
from urllib.request import urlopen

postdata = {
    'datetime': str(calendar.timegm(time.gmtime())),
    'sensorId': "1",
    'tempRecord': str(read_temp())
}

req = Request(url)
req.add_header('Content-Type','application/json')
data = json.dumps(postdata)

response = urlopen(req,data)

1 个答案:

答案 0 :(得分:0)

您应该使用:

response = urlopen(req, data.encode())

为什么?

因为json.dump(postdata)返回一个str对象,

urlopen需要一个bytes对象。

因此,您必须将data的{​​{1}}转换为str,并使用bytes进行此操作。