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(…)
代码片段实现什么?一般来说,你想完成什么?请在问题中张贴输入和所需输出。