类型错误:parse() 缺少 1 个必需的位置参数:'timestr'

Qui*_*5SY 1 python python-3.x python-dateutil

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

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))
Run Code Online (Sandbox Code Playgroud)

我试图抓取的网站是一个 JSON 格式的天气预报 API。、'properties''periods''startTime'JSON 中的类别。有趣的是,当我向解析器提供存储在这些类别中的值时,它可以无缝工作,但当该值是变量时则不然。我究竟做错了什么?

示例数据

Tom*_*koo 5

parser是一个类

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

   def parse(self, timestr, default=None,
             ignoretz=False, tzinfos=None, **kwargs):
       [...]
Run Code Online (Sandbox Code Playgroud)

当您执行类似的操作时,您将作为参数parser.parse(t)传递,并且所需的位置参数不会获得值。您需要在实例上调用此方法:tselftimestr

parser().parse(t)
Run Code Online (Sandbox Code Playgroud)

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

parser().parse(t)
Run Code Online (Sandbox Code Playgroud)