首页 > 解决方案 > 在 post 请求 python 中传递 json 以提交文件

问题描述

我正在尝试使用 Python 在 post 请求中传递 JSON。下面是代码

from urllib2 import Request, urlopen        
values = """[{"n": "MyApexClass","r": false,"t": "ApexClass"},{"n": "SysAdmin","r": false,"t": "Profile"}]"""

request = Request('https://copado.herokuapp.com/json/v1/webhook/'
                'commitFiles/user_story_idapi_key=user_api_key&commitMessage=commitMessage', data=values)

response_body = urlopen(request).read()

print response_body

但我得到以下错误

{"error":"Malformed payload, could not parse metadata json!!!"}

请帮我。

标签: pythonjsonpostpython-2.x

解决方案


尝试使用值而不是字符串,用作 python 对象

values = [
    {"n": "MyApexClass", "r": False, "t": "ApexClass"},
    {"n": "SysAdmin", "r": False, "t": "Profile"}
]

values = json.dumps(values).encode('utf8')

req = Request(your_url, data=values,
              headers={'content-type': 'application/json'})

推荐阅读