【问题标题】:‘TypeError: dict expected at most 1 arguments, got 4''TypeError: dict 最多期望 1 个参数,得到 4'
【发布时间】:2020-02-08 15:36:27
【问题描述】:

我尝试阅读很多帖子,但无法解决问题

我看到TypeError: got multiple values for argument

但我对 python 太陌生了,不知道如何使用它来修复代码。

rnd = Random()
post_data = dict()
categories = []
post_data[rnd.randint(1, 30000000)] = dict(
    categories==[
        12193,
        12191
    ],
    'country_code=US'
    'language=en'
    'limit=10'
)

【问题讨论】:

  • 提供完整的错误信息
  • 您希望字典中的输出是什么?您将 4 个参数传递给 dict,这是不正确的。
  • 这不是使用dict() 的正确方法,而是使用{} 来定义字典并在其中插入值。
  • 请注意,== 是一个比较,这里给出了False,因为categories 是一个空列表,不等于提供的具有 2 个元素的列表。此外,第二个参数是 3 行代码中的 1 个字符串。

标签: python


【解决方案1】:

这里为什么你将四个参数传递给dict

dict(
    categories==[
        12193,
        12191
    ],
    'country_code=US'
    'language=en'
    'limit=10'
)

== 是逻辑比较,只是dict(key=value,key1=value1) 不要忘记逗号,。你应该这样做

dict(
     categories=[
         12193,
         12191
      ],
      country_code='US',
      language='en',
      limit='10',
  )

输出:

{'categories': [12193, 12191], 'country_code': 'US', 'language': 'en', 'limit': '10'}

【讨论】:

  • 不行,你不能使用空列表categories作为字典键,只有设置categories='categories'才能得到你显示的输出。
  • @JoachimWagner categories 这里不是列表键,永远不可能是列表。字典键在这里只能是不可变的数据结构 categories 将是 string 类型的键并具有值 [] 在 shell 上试​​试这个并查看 dict(categories=[ ])
  • @JoachimWagner 不,你在这里加上引号是错误的,为什么你不在 shell 中尝试一下,然后再发表评论我会关闭答案,如果它失败了
  • 抱歉,我没想到 Python 会特别处理 dict() 内部的东西。真的很糟糕,仍然不允许使用关键字,例如dict(for='10') 不起作用。
  • 谢谢,这是有道理的,并解释了为什么像 for 这样的特殊词在这种语法中不允许作为键。最好推荐给初学者使用{}
【解决方案2】:

您的dict() 通话中有多个问题。

(1) 您是否尝试使用空字典 categories 作为键,您是否将空字典与提供的列表进行比较,给 False 以示例中所示的初始化,或者您想要一个键值对('categories', [12193, 12191])?如果是后者,您是否希望列表成为列表categories,以便在您执行categories.append(123) 时,categories 键下的值也会发生变化?

(2) dict() 的第二个参数是字符串“country_code=USlanguage=enlimit=10”,在代码中超过 3 行。您可能需要 3 个键值对 ('country_code', 'US')('language', 'en')('limit', '10')('limit', 10)

(3) 您似乎将dict() 调用的语法与{...} 构造的语法混合在一起。前者需要命名参数语法中的键值对,而后者使用交替冒号和逗号来分隔键和值。

【讨论】:

    猜你喜欢
    • 2014-08-01
    • 2022-11-17
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多