社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在python中从sqs消息id中删除单引号

Jimmy • 5 年前 • 1689 次点击  

我从AWS SQS得到一个消息ID,格式如下:

u'messageId': u'9c8a1bff-9ef2-411e-a163-ce631856ded3'

我获取MessageID值并使用以下内容进行解码:

    messageid =message['messageId']
    messageid =jobgroupid.encode('ascii','ignore')
    messageid =messageid .replace("''", "")

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

9c8a1bff-9ef2-411e-a163-ce631856ded3

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

'9c8a1bff-9ef2-411e-a163-ce631856ded3'

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39774
 
1689 次点击  
文章 [ 1 ]  |  最新文章 5 年前
jsbueno
Reply   •   1 楼
jsbueno    6 年前

你把字符串内容误认为是字符串表示,把它弄得一团糟。

字符串作为python中的数据,在python 2中是unicode字符串或字节字符串 查看 周围的 ' 每当你看到它们的表现时,你就会引用它们。

向最终用户呈现字符串内容的方法和函数(其中包括录制然后放在文件中)确实显示了该内容,但不包含周围的引号。

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

将引号放在输出“.dat”文件上的代码不在此处显示-该代码将字符串放在此处。如果你自己录制一个原始文件 myfile.write(messageid) 写的时候没有引号。我倾向于认为您正在使用一些第三方代码来编写您的dat文件,将数据作为字典传入-该代码包括输出上的引号。

如果直接调用file.write,则获取这些引号的唯一方法是 repr 你的数据,比如: myfile.write(repr(messageid)) ,或者如果此MessageID位于列表或Python语句中,并且将该数据结构的字符串表示形式写入 file.write(str(my_dict_with_data))

而且,它可能有这样的理由。 .dat 是数据的通用扩展,没有真正的规范——在许多情况下,这样的数据周围的Qute(例如在JSON文件中)是可取的。