You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环ID列表生成Tableau PDF报错:'str'对象无'keys'属性

问题分析与解决

错误原因

  1. 第一个循环中,每次迭代都会覆盖pdf_params变量,最终仅保留最后一个ID对应的参数配置,前面的所有配置都被丢失。
  2. 第二个循环遍历的是pdf_params字典的键(字符串类型),但conn.query_view_pdf的parameter_dict参数要求传入完整的参数字典,而非单个字符串键,因此触发AttributeError: 'str' object has no attribute 'keys'。

修正后的代码

test_loop = ['202','475','78','20','10']

for item in test_loop:
    tableau_filter_value = parse.quote(item)
    # 为当前ID生成专属参数字典
    pdf_params = {
        "pdf_orientation": "orientation=Landscape",
        "pdf_layout": "type=A4",
        "filter_vendor": f"vf_{tableau_filter_field}={tableau_filter_value}",
    }
    # 直接使用当前参数生成对应ID的PDF
    with open(f'output{item}.pdf', 'wb') as file:
        file.write(conn.query_view_pdf(view_id=pdf_view_id, parameter_dict=pdf_params).content)

关键修正点

  • 将参数生成与PDF生成逻辑合并到同一个循环中,确保每个ID都能生成对应的参数字典并立即生成PDF。
  • 使用item(当前循环的ID值)作为PDF文件名的后缀,保证每个文件对应正确的ID。
  • 直接将完整的pdf_params字典传入parameter_dict参数,符合API要求。

内容的提问来源于stack exchange,提问作者pevdr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:37:09