在我的程序开始时,我正在定义一个简单的对象,它设置我将如何调用服务的配置。像这样:
document_conversion = DocumentConversionV1(
username='xxx',
password='xxx',
version='2016-05-31')
然后,我想在目录中的所有文件上调用服务。我尝试这样做,但我相信配置对象无法找到 - 它似乎超出范围,我得到这个错误:
NameError: name 'config' is not defined
这是我在创建对象后直接拥有的内容:
yourpath = 'C:\\Users\\Desktop\\working_folder\\'
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
print(os.path.join(root, name))
config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS
with open(join(dirname(__file__), os.path.join(root, name)), 'r') as document:
print(json.dumps(document_conversion.convert_document(document=document, config=config), indent=2))
我已经尝试在for子句中的for循环中定义配置对象,但它似乎仍然不起作用。奇怪的是,如果我从上面删除for循环,它似乎确实有效(如果在一个文件而不是文件夹上运行)。
任何想法可能会出现问题吗?
由于
答案 0 :(得分:1)
如果config
词典只应包含'conversion_target'
键,则可以替换该行
config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS
与
config = {'conversion_target': DocumentConversionV1.ANSWER_UNITS}
答案 1 :(得分:0)
问题在于,为了使用以下行为数组赋值:
config['conversion_target'] = DocumentConversionV1.ANSWER_UNITS
字典'配置'应该已经初始化了。如果要同时初始化和确定值,可以使用。
config = {'conversion_target': DocumentConversionV1.ANSWER_UNITS}
当删除循环时,奇怪的部分就是这个。你确定它进入了内循环吗?