如何修复使用json.dumps时的str问题?

14 浏览
0 Comments

如何修复使用json.dumps时的str问题?

大家好,请问有人能帮我解决这个问题吗?

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)

0
0 Comments

问题:如何解决使用json.dumps时的str问题?

原因:json.dumps返回一个str对象,而urlopen函数需要一个bytes对象作为参数。所以需要将data从str转换为bytes对象,可以使用encode方法进行转换。

解决方法:在使用urlopen函数时,将data编码为bytes对象,代码如下:

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

问题:如何查看使用该代码后的温度值?

解决方法:根据你提供的信息,无法确定你正在尝试POST的URL是什么。如果你想要查看温度值,可以尝试以下方法:

1. 使用`data = response.read()`读取数据,然后使用`print(data)`打印数据。

2. 如果数据是JSON格式,可以使用`data = json.loads(response.read())`将数据加载为JSON对象,然后在`data`中搜索温度值。

然而,根据你提供的信息,无法确定具体的操作。如果你是在尝试从网络传感器中读取信息,请提供更多详细信息,例如传感器的URL和型号等。

文章链接:[点击此处](http://prntscr.com/nj2swt)。有人知道如何解决这个问题吗?

很抱歉,我不太理解你在这里尝试做什么。如果你想从一个网络传感器中读取信息,请提供更多信息,例如传感器的URL和型号等。

0