在python中我是这样定义的
callbody = "{\"filename\":${object},\"size\":${size},\"mimeType\":${mimeType},\"path\":${x:\""+ upload_dir +"\"},\"uuid\":${x:"+ uuid +"}}"
print打印出来的结果:
{"filename":${object},"size":${size},"mimeType":${mimeType},"path":${x:"images"},"uuid":${x:11}}
我的服务器接收时自定义变量都为None
{'filename': 'images/TypeObjectClass.jpg', 'size': 22862, 'mimeType': 'image/jpeg', 'path': None, 'uuid': None}
我到底哪里出现错误了?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
从你的描述来看,问题可能出在你如何处理和填充模板字符串callbody
中的占位符。在Python中,直接使用字符串格式化会更直观且易于管理动态数据。你尝试使用的是一种类似模板引擎的语法(如${object}
),但Python并不直接支持这种写法进行字符串替换。正确的做法是使用Python内置的字符串格式化方法,比如f-string
(Python 3.6及以上版本)、str.format()
或者百分号(%
)格式化。
object = "images/TypeObjectClass.jpg"
size = 22862
mimeType = "image/jpeg"
upload_dir = "images"
uuid = 11
callbody = f'{{"filename":"{object}","size":{size},"mimeType":"{mimeType}","path":"{upload_dir}","uuid":{uuid}}}'
print(callbody)
object = "images/TypeObjectClass.jpg"
size = 22862
mimeType = "image/jpeg"
upload_dir = "images"
uuid = 11
callbody = '{"filename":"{}","size":{},"mimeType":"{}","path":"{}","uuid":{}}'.format(object, size, mimeType, upload_dir, uuid)
print(callbody)
object = "images/TypeObjectClass.jpg"
size = 22862
mimeType = "image/jpeg"
upload_dir = "images"
uuid = 11
callbody = '{"filename":"%s","size":%d,"mimeType":"%s","path":"%s","uuid":%d}' % (object, size, mimeType, upload_dir, uuid)
print(callbody)
以上任何一种方式都可以正确地将变量插入到字符串中,从而避免服务器接收时自定义变量为None的问题。请根据你的Python版本选择合适的方法。