簡體   English   中英

如何在python中使用嵌套字典返回用戶定義的變量

[英]how to use nested dictionary in python which return user defined variable

我正在嘗試獲取time值,如果在人中發現它應該打印時間,否則沒有時間

下面是我試圖測試的代碼:

import datetime
people = {1: {'time': '', 'age': '27', 'sex': 'Male'},
          2: {'time': '', 'age': '22', 'sex': 'Female'}}

time = datetime.datetime.now()
for time in people.items():
    if time in people.items():
        print(people,"true");
    else:
        print(people,"false");

輸出是:

{1: {'age': '27', 'sex': 'Male', 'time': ''}, 2: {'age': '22', 'sex': 'Female', 'time': ''}} true
{1: {'age': '27', 'sex': 'Male', 'time': ''}, 2: {'age': '22', 'sex': 'Female', 'time': ''}} true

我希望它在顯示當前時間戳值的值time

期望的輸出:

{1: {'age': '27', 'sex': 'Male', 'time': '2021-06-17T05:42:32.204965'}, 2: {'age': '22', 'sex': 'Female', 'time': '2021-06-17T05:42:32.204965'}} true

參考:

{
  "id": "urn:ngsi-ld:Device:filling001",
  "type": "FillingSensor",
  "filling": {
    "type": "Property",
    "value": 0.94,
    "unitCode": "C62",
    **"time": "2021-01-28T12:33:10.000Z"**
  },
  "time_index": "2021-01-28T12:33:20.476"
}

我在這里做錯了什么。 這方面的幫助會很大嗎?

您的代碼有幾個問題:

  1. 您使用相同的變量timetime = datetime.datetime.now()for time in people.items()因此第二個將覆蓋第一個值。

  2. people.items()返回一個 key, value 元素的元組,即: (1, {...})所以你不能將time與 (key, value) 進行比較。

  3. 使用in運算符對我來說似乎很錯誤,我會嘗試如下所示。

.

time = datetime.datetime.now()
for key, val in people.items():
  print({key:val}, "true" if val.get("time") == time else "false")

您需要在字典初始化之前將time初始化為datetime.datetime.now() ,然后將空引號替換為time

暫無
暫無

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

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