簡體   English   中英

我如何使for循環從函數返回值

[英]How do i make the for loop return the value from a function

因此,我嘗試了使用循環運行的JSON文件中的數據返回數據的不同方法。

我的想法是,我有一個帶有ip的config.json文件,需要在調用該文件時將其提供給函數。

{
    "ip1" : "10.0.0.111",
    "ip2" : "10.0.0.112"
  }
import json
import urllib.request

with open('config.json') as config_file:
    data = json.load(config_file)

def temprature(v):

    urlData = f"http://{v}:8080/getdevice?device=type28_1"
    #print(urlData)
    webURL = urllib.request.urlopen(urlData)
    data = webURL.read()
    encoding = webURL.info().get_content_charset('utf-8')
    tempData = json.loads(data.decode(encoding))
    return tempData["Celsius"]


for (k, v) in data.items():
   #print("Key: " + k)
   temprature(v)
   #print(str(v))

我看不到或想不出如何獲取臨時數據並將其保存到外部變量。 我試圖制作一個調用for循環的變量,但對我來說也失敗了。

編輯:被稱為此帖子的副本 但這不包括for循環的返回。

您需要將值保存到某些數據結構-列表,字典等:

temperature_data = []
for (k, v) in data.items():
   #print("Key: " + k)
   temperature_data.append(temprature(v))
   #print(str(v))
    print(temprature(v))

print(temperature_data)

temperature_data = {}
for (k, v) in data.items():
   #print("Key: " + k)
   temperature_data[k] = temprature(v)
   #print(str(v))
   print(temprature(v))

print(temperature_data)

正如@ggorlen所提到的,打印結果似乎是您最終想要做的,因此我在循環中添加了一條print語句。

確保在循環外部建立數據結構,因為否則,您將在每個循環上覆蓋變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM