我从AWS获得了一个消息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'为什么这段文字周围还有单引号?
发布于 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是一件理想的事情。
https://stackoverflow.com/questions/52692681
复制相似问题