首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python PUT请求,发送int而不是string

Python PUT请求,发送int而不是string
EN

Stack Overflow用户
提问于 2018-12-13 01:52:53
回答 2查看 2.4K关注 0票数 2

我需要使用来自python的库请求的PUT请求。XML必须是字符串,但我需要将值作为Int发送。

代码语言:javascript
复制
import requests
bodyXML = """<?xml version='1.0' encoding='utf-8'?><parameters><value>6</value></parameters>"""
bodyHeader = {'Content-Type': 'application/xml'}
p = requests.put('http://test.pt:1891/cash', data=bodyXML, headers=bodyHeader)

答案是:

代码语言:javascript
复制
<?xml version = "1.0" encoding = "UTF-8"?><reply-text>Value must be numeric.</reply-text> 

这是程序的答案,所以我可以到达目标并获得响应。

如果将6更改为“”+6+“”,则在Python中会收到错误

代码语言:javascript
复制
TypeError: must be str, not int

如何将整数转换为字符串?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-08 00:33:23

尽管程序员很顽固,我还是找到了一种发送值的方法,因为他们正在使用lxml构建XML,并在要发送的XML之前添加一个字符串"post_xml=“,效果很好:

代码语言:javascript
复制
import requests
from lxml import etree

root = etree.Element("parameters")
child = etree.SubElement(root, "value")
child.text = str(str(6))

xml = str('post_xml=') + etree.tostring(root, encoding='unicode', method='xml')
p = requests.request("PUT", 'http://test.pt:1891/cash', data=xml)

print(p.text)

值6被服务器接受为整数。

票数 -1
EN

Stack Overflow用户

发布于 2018-12-13 02:02:02

假设您将bodyXML = """<?xml version='1.0' encoding='utf-8'?><parameters><value>6</value></parameters>""" 6的价值放在+6+的位置上,这很容易。问题是字符串行符号“在6之前终止。为了解决这个问题,只需通过引号将整数转换为字符串,或者通过将6封装在import requests bodyXML = """<?xml version='1.0' encoding='utf-8'?><parameters><value>”””+”6”+”””</value></parameters>""" ()中进行转换,就像string(6)一样。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53748719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档