第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

類型錯誤:“float”和“bytes”實(shí)例之間不支持“>=”

類型錯誤:“float”和“bytes”實(shí)例之間不支持“>=”

胡說叔叔 2023-07-27 16:46:16
誰能幫我解決我的這個問題?這是我的代碼:import RPi.GPIO as GPIO import timeimport Adafruit_DHTimport urllib.requestGPIO.setmode (GPIO.BCM)GPIO.setwarnings(False)GPIO.setup (13, GPIO.OUT)GPIO.output(13, 1)def getSensorData():    humidity, temp = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 22)    return (float(humidity), float(temp))baseURL = 'https://mekatronika15.000webhostapp.com/data.php?api_key=%s'inputURL= 'https://mekatronika15.000webhostapp.com/admin/tes2.php'try:   while True:      humidity, temp = getSensorData()      humidity = '%.2f' % humidity      temp = '%.2f' % temp      try:         conn = urllib.request.urlopen(baseURL + "&humidity=%s&temp=%s" % (humidity, temp))         conn1 = urllib.request.urlopen(inputURL)         print (conn.read())         conn.close()         status1 = conn1.read()         sleep(20)      except:          print ('exiting.')                 print (humidity, temp)          if float(temp) >= status1:         GPIO.output(13, 0)                  elif float(temp) <= status1:         GPIO.output(13, 1)             except KeyboardInterrupt:    GPIO.cleanup()以及它給出的錯誤:if float(temp) >= (status1):TypeError: '>=' not supported between instances of 'float' and 'bytes'不幸的是,我對 python 不熟悉,所以我被困住了,我知道這個應(yīng)用程序中有很多類似的問題和答案,我已經(jīng)嘗試了一些,但仍然收到錯誤。
查看完整描述

3 回答

?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個贊

由于在使用變量之前不需要聲明它,因此在嘗試對變量進(jìn)行操作時需要格外小心。

問題是這一行status1 = conn1.read() Here,conn1.read()返回網(wǎng)頁的內(nèi)容,即源html作為字節(jié)序列(類似于字符串)。將數(shù)字與字符序列進(jìn)行比較是未定義的操作;因此,python 引發(fā)了一個錯誤。

您可以設(shè)計(jì)一個解析器來檢索您需要的信息。例如,您可以使用將擁有的字節(jié)轉(zhuǎn)換為字符串encode()。然后是你想要find()的索引status1。然后您可以使用 substring 獲取status1字符串,最后將其轉(zhuǎn)換為數(shù)字。


查看完整回答
反對 回復(fù) 2023-07-27
?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個贊

status1以字節(jié)形式返回,需要格式化。

在睡眠之前打?。╯tatus1)或使用調(diào)試器檢查該值。我的猜測是,您需要對收到的回復(fù)進(jìn)行更多分析。

該庫requests是 urllib 的包裝器,通常更有用,因此您不需要所有這些步驟。

    response = requests.get(url)
    response.json  # probably has what you need


查看完整回答
反對 回復(fù) 2023-07-27
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊

urllib.request.urlopen()函數(shù)返回一個HTTPResponse對象:

import urllib.request

connection = urllib.request.urlopen("https://stackoverflow.com/")

type(connection) # <class 'http.client.HTTPResponse'>

read對象的方法(?HTTPConnection您使用語句調(diào)用status1 = conn1.read())在文檔中描述如下:

讀取并返回響應(yīng)正文,或直到下一個 amt bytes。

(強(qiáng)調(diào)我的)

因此,您收到類型錯誤的原因是HTTPConnection.readreturn?bytes,它無法與float.?您需要將 轉(zhuǎn)換bytesfloat.?如果conn1.read()只是以字節(jié)形式返回一個數(shù)字,您可以使用float(status1),但我高度懷疑status1其格式有點(diǎn)復(fù)雜,因此您需要進(jìn)行一些挖掘以弄清楚您到底想要從中提取數(shù)據(jù)的內(nèi)容和方式它。

您可能需要研究像BeautifulSoup這樣的 HTML 解析器來幫助您提取您要查找的數(shù)據(jù)。


查看完整回答
反對 回復(fù) 2023-07-27
  • 3 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號