无法从字符串中删除单引号

2024-09-30 12:17:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个非常奇怪的问题:我得到了一个字符串列表,如下所示:

batch = ['{"SageMakerOutput":[{"label":"LABEL_8","score":0.9152628183364868},"inputs":"test"}',
 '{"SageMakerOutput":[{"label":"LABEL_8","score":0.9769203066825867},"inputs":"Alles OK"}',
 '{"SageMakerOutput":[{"label":"LABEL_8","score":0.9345938563346863},"inputs":"F"}']

在列表的每个条目中,我都想删除单引号“”,但不知何故,我无法使用.replace()删除它:

for line in batch:
    line = line.replace("'","")

我不明白


Tags: 字符串test列表batchline条目oklabel
1条回答
网友
1楼 · 发布于 2024-09-30 12:17:28

好吧,从你的评论和你的其他帖子来看,似乎你拥有的是字符串,你想要的是字典。我从另一篇文章复制了你的数据,因为你在这篇文章中的数据不正确(你在这篇文章中缺少]

解决方案

import json

batch = ['{"SageMakerOutput":[{"label":"LABEL_8","score":0.9152628183364868}],"inputs":"test"}',
         '{"SageMakerOutput":[{"label":"LABEL_8","score":0.9769203066825867}],"inputs":"Alles OK"}']

batch = [json.loads(b) for b in batch]

输出:

[{'SageMakerOutput': [{'label': 'LABEL_8', 'score': 0.9152628183364868}],
  'inputs': 'test'},
 {'SageMakerOutput': [{'label': 'LABEL_8', 'score': 0.9769203066825867}],
  'inputs': 'Alles OK'}]

解释

batch中的那些对象称为^{}对象。它们只是具有非常特殊结构的字符串。它们类似于Python的dict类型,有一些非常微小的差异,可以使用Python内置的json模块非常容易地转换为Python dict对象,该模块自动转换JSON和Python之间的这些微小差异(例如,JSON字符串中的布尔值是truefalse,但在Python中它们需要被转换TrueFalse

注释

给OP和未来读者的建议:这篇文章是XY problem的一个经典案例。在未来,试着更清楚地了解你的最终目标。你在这篇文章中的问题实际上是不可回答的,因为不可能做到你所要求的

相关问题 更多 >

    热门问题