TypeError: parse() missing 1 required positional argument: 'timestr'

TypeError: parse() missing 1 required positional argument: 'timestr'

我正在尝试抓取网站,但我不断收到此 post 标题中的错误。我还没有找到解决这个问题的方法,非常感谢任何帮助。 这是我的代码:

import requests
import json
from dateutil.parser import parser

url = 'website url'
info = requests.get(url)
data = info.json()

for entry in data['properties']['periods']:
    t = entry['startTime']
    print(parser.parse(t))

我要抓取的网站是天气预报 API,格式为 JSON。 'properties''periods''startTime' 是 JSON 中的类别。有趣的是,当我将存储在这些类别中的值提供给解析器时,它可以无缝地工作,但当值是一个变量时就不行了。我做错了什么?

Example Data

parser is a class:

class parser(object):
   def __init__(self, info=None):
       self.info = info or parserinfo()

   def parse(self, timestr, default=None,
             ignoretz=False, tzinfos=None, **kwargs):
       [...]

当您执行类似 parser.parse(t) 的操作时,您将 t 作为 self 参数传递,而 required 位置参数 timestr 没有得到值。您需要在实例上调用此方法:

parser().parse(t)

并且由于您在循环中使用它,因此最好在 循环之前创建一次:

date_parser = parser()
for entry in data['properties']['periods']:
    t = entry['startTime']
    print(date_parser.parse(t))