首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python中的SQS消息id中删除单引号

从python中的SQS消息id中删除单引号
EN

Stack Overflow用户
提问于 2018-10-07 20:36:26
回答 1查看 384关注 0票数 0

我从AWS获得了一个消息ID,如下所示:

代码语言:javascript
复制
u'messageId': u'9c8a1bff-9ef2-411e-a163-ce631856ded3'

我获取messageid值并解码如下:

代码语言:javascript
复制
    messageid =message['messageId']
    messageid =jobgroupid.encode('ascii','ignore')
    messageid =messageid .replace("''", "")

当我在python中打印它时,它不显示引号,只显示字符串值。

代码语言:javascript
复制
9c8a1bff-9ef2-411e-a163-ce631856ded3

然后将其作为dat文件上载到s3。我在本地获取dat文件,然后读取该文件,它显示如下:

代码语言:javascript
复制
'9c8a1bff-9ef2-411e-a163-ce631856ded3'

为什么这段文字周围还有单引号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-09 15:13:56

您将字符串内容误认为是字符串表示,并将其弄得一团糟。

字符串,作为Python中的数据,然后是unicode字符串或Python2中的字节-字符串,每当您查看它们的表示形式时,都会使用周围的'引号来查看它们。

用于将字符串内容呈现给最终用户的方法和函数(包括记录然后记录在文件上)确实显示了没有周围引号的内容。

在Python2中,要查看控制台中的字符串内容,可以使用print语句。

这里没有给出将引号放在输出".dat“文件中的代码--该代码是将字符串放在那里的原因。如果您自己正在录制一个原始文件,只需调用myfile.write(messageid)就可以编写它而不需要引用。我倾向于认为您正在使用一些第三方代码来编写您的dat文件,将您的数据作为字典传递--该代码包括输出中的引号。

如果直接调用file.write,则获取这些引号的唯一方法是,如果您编写数据的repr (如in:myfile.write(repr(messageid)) ),或者该消息位于list或Python中,然后将该数据结构的字符串表示形式写入您的file.write(str(my_dict_with_data))文件中。

而且,这可能是有原因的。.dat是数据的通用扩展,并且没有真正的规范--在许多情况下,这样的数据(例如,在JSON文件中)周围的qutes是一件理想的事情。

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

https://stackoverflow.com/questions/52692681

复制
相关文章

相似问题

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