Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对于访问Dict元素时的循环错误:';dict';对象不可调用_Python_Dictionary - Fatal编程技术网

Python 对于访问Dict元素时的循环错误:';dict';对象不可调用

Python 对于访问Dict元素时的循环错误:';dict';对象不可调用,python,dictionary,Python,Dictionary,我已经看过了“dict”对象是不可调用的,所以我给出了答案,但不太明白我搞砸了什么 我有一个字典数组,然后我想遍历每个字典并访问元素 prebuilt_jars = [ {'name':'xwalk-app-jar', 'binary_jar':'xwalk_core_library/libs/xwalk_core_library_java_app_part.jar'}, ] for prebuilt_jar in prebuilt_jars: prebuilt_jar( name

我已经看过了
“dict”对象是不可调用的
,所以我给出了答案,但不太明白我搞砸了什么

我有一个字典数组,然后我想遍历每个字典并访问元素

prebuilt_jars = [
{'name':'xwalk-app-jar', 'binary_jar':'xwalk_core_library/libs/xwalk_core_library_java_app_part.jar'},
]

for prebuilt_jar in prebuilt_jars:
  prebuilt_jar(
    name = prebuilt_jar['name'],
    binary_jar = prebuilt_jar['binary_jar'],
  )
  jar_deps.append(':' + prebuilt_jar['name'])
但是,我得到了一个
“dict”对象不能在上调用

name=prebuilded\u jar['name'],

binary\u-jar=prebuilded\u-jar['binary\u-jar',

你知道我的语法有什么问题吗

更新

因此,我所做的是试图将我的一系列规则浓缩成这样:

prebuilt_jar(
  name = 'xwalk-app-jar',
  binary_jar = 'xwalk_core_library/libs/xwalk_core_library_java_app_part.jar',
)

jar_deps.append(':xwalk-app-jar')
prebuilded\u jar
是一个Buck函数,用于构建预构建的jar文件

我希望有一个包含所有jar对象的字典,然后使用这些字典对象来填充
prebuilded\u jar
调用

回答

我将循环变量命名为与函数名相同的名称

for pJar in prebuilt_jars:
  prebuilt_jar(
    name = pJar['name'],
    binary_jar = pJar['binary_jar'],
  )
  jar_deps.append(':' + pJar['name'])

这实际上是循环变量上的函数调用语法:

prebuilt_jar(
    name = prebuilt_jar['name'],
    binary_jar = prebuilt_jar['binary_jar'],
  )
你对该代码的意图是什么

我可以想象:

for prebuilt_jar in prebuilt_jars:
  jar_deps.append(':' + prebuilt_jar['name'])

这就是你的意思。

你之所以会犯这个错误,是因为你试图调用字典
Prebuilded_jars
是一本字典,那么您可以:

prebuilt_jar(
    name = prebuilt_jar['name'],
    binary_jar = prebuilt_jar['binary_jar'],
  )
好像
预构建的\u jar
是一个函数。试着做:

for prebuilt_jar in prebuilt_jars:
     print(prebuilt_jar['name'])
     print(prebuilt_jar['binary_jar'])

或者,如果您不只是想打印项目。

No,错误是因为您正在围绕这两行调用
prebuild\u jar(…)
。你为什么这么做?我正在使用Buck(Android的构建脚本工具)。我将发布我正在做的事情的详细说明。您想用
预构建的jar(…)
代码片段实现什么?一般来说,你想完成什么?请在问题中张贴输入和所需输出。