簡體   English   中英

Python的新特性:“ NoneType”類型的參數不可迭代

[英]New to Python: argument of type 'NoneType' is not iterable

我是Python的新手,它是第一個分配給並且現在需要支持的項目:) Python似乎是超級友好的語言。 所以請原諒我愚蠢的問題。

我收到以下錯誤:

  File "AlKamelClient.py", line 316, in <module>
    client.main()
  File "AlKamelClient.py", line 296, in main
    self.dispatch_reply_message(self.parse_msg(msg))
  File "AlKamelClient.py", line 226, in dispatch_reply_message
    self.log_to_db(message)
  File "AlKamelClient.py", line 181, in log_to_db
    if 'session' in data['timing']:
TypeError: argument of type 'NoneType' is not iterable

在下面的代碼中,第181行是“如果data ['timing']:中的'session':”。

我已經看過嘗試:捕獲異常等。我不確定從這里去哪里。

代碼是:

def log_to_db(self, message):

    channel = message['channel']
    data = message['data']

    if 'timing' in data:
        if 'session' in data['timing']:
            if 'info' in data['timing']['session']:
                pp.pprint(data['timing']['session']['info'])
                self._timing_session_info.update(data['timing']['session']['info'])
                self._session_id = db.timing_session_info(self._db.cursor(), db.NoneDict(self._timing_session_info))

            if 'entry' in data['timing']['session']:
                pp.pprint(data['timing']['session']['entry'])
                db.timing_session_entry(self._db.cursor(), db.NoneDict(data['timing']['session']['entry']), self._session_id)

            if 'flags' in data['timing']['session']:
                pp.pprint(data['timing']['session']['flags'])
                db.timing_session_flags(self._db.cursor(), db.NoneDict(data['timing']['session']['flags']), self._session_id)

        if 'liveEvents' in data['timing']:
            if 'fl' in data['timing']['liveEvents']:
                pp.pprint(data['timing']['liveEvents']['fl'])
                db.timing_liveEvents_fl(self._db.cursor(), data['timing']['liveEvents']['fl'], self._session_id)
            if 'sector' in data['timing']['liveEvents']:
                pp.pprint(data['timing']['liveEvents']['sector'])
                db.timing_liveEvents_sector(self._db.cursor(), db.NoneDict(data['timing']['liveEvents']['sector']), self._session_id)

    if 'telemEvent' in data:
        pp.pprint(data['telemEvent'])
        db.telemEvent(self._db.cursor(), db.NoneDict(data['telemEvent']), self._session_id)

該錯誤意味着未設置data['timing']即設置為null / None。

該聲明:

if 'session' in data['timing']:

實際上會迭代data['timing']但由於它為null / None,因此無法對其進行迭代。 您應該檢查一下它是否已實際設置。

暫無
暫無

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

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