为什么缺少字段?

问题描述

一个Python脚本应设置清理Docker映像的策略

headers = {"PRIVATE-TOKEN": TOKEN}

data_binary = {
    "container_expiration_policy_attributes": {
        "cadence": "1month","enabled": "true","keep_n": "1","older_than": "14d","name_regex": "","name_regex_delete": ".*","name_regex_keep": ".*-master"
    }
}

url = f"https://hidden/api/v4/projects/{str(project_id)}"

r = requests.put(url,headers=headers,data=json.dumps(data_binary))
json_data = r.json()
pprint.pprint(json_data)

启动时返回错误

{'error': 'allow_merge_on_skipped_pipeline,autoclose_referenced_issues,'
          'auto_devops_enabled,auto_devops_deploy_strategy,'
          'auto_cancel_pending_pipelines,build_coverage_regex,'
          'build_git_strategy,build_timeout,builds_access_level,'
          'ci_config_path,ci_default_git_depth,'
          'ci_forward_deployment_enabled,container_registry_enabled,'
          'container_expiration_policy_attributes,default_branch,'
          'description,emails_disabled,forking_access_level,'
          'issues_access_level,lfs_enabled,merge_requests_access_level,'
          'merge_method,name,'
          'only_allow_merge_if_all_discussions_are_resolved,'
          'only_allow_merge_if_pipeline_succeeds,pages_access_level,path,'
          'printing_merge_request_link_enabled,public_builds,'
          'remove_source_branch_after_merge,repository_access_level,'
          'request_access_enabled,resolve_outdated_diff_discussions,'
          'shared_runners_enabled,snippets_access_level,tag_list,'
          'visibility,wiki_access_level,avatar,suggestion_commit_message,'
          'repository_storage,compliance_framework_setting,packages_enabled,'
          'service_desk_enabled,issues_enabled,jobs_enabled,'
          'merge_requests_enabled,wiki_enabled,snippets_enabled,'
          'approvals_before_merge,'
          'external_authorization_classification_label,import_url,'
          'fallback_approvals_required are missing,at least one parameter '
          'must be provided'}

据我了解,关键是以下

...container_expiration_policy_attributes... are missing

尽管我指出了这个领域。有什么问题吗?

解决方法

解决方案是添加内容类型

headers = {"PRIVATE-TOKEN": TOKEN,"Content-type": "application/json;charset=UTF-8"}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...