在Python中删除字符串中间的连续字符

9 浏览
0 Comments

在Python中删除字符串中间的连续字符

Google地图API的标准返回值如下所示 - 将字节转换为字符串后:

b'{\n   "destination_addresses" : [ "华盛顿特区, 美国" ],\n   "origin_addresses" : [ "纽约, 纽约州, 美国" ],\n   "rows" : [\n      {\n         "elements" : [\n            {\n               "distance" : {\n                  "text" : "370 公里",\n                  "value" : 369720\n               },\n               "duration" : {\n                  "text" : "3 小时 48 分钟",\n                  "value" : 13672\n               },\n               "status" : "OK"\n            }\n         ]\n      }\n   ],\n   "status" : "OK"\n}\n'

为了进一步处理它,我想先删除所有的换行符。然而,我不知道该如何做。

results_str.replace('\n', "") 

不起作用,即返回相同的字符串而没有替换'\n',因为存在换行符继续符。

当我加倍反斜杠时,情况也是一样的。

results_str.replace('\\n', "") 

有什么提示吗?

0
0 Comments

在Python中,有时候会遇到一个字符串中包含了换行符或其他特殊字符的情况。对于这种情况,我们需要将这些特殊字符移除,只保留有效的字符串内容。

在这个问题中,我们需要移除字符串中间的续行符。为了解决这个问题,我们可以使用Python的json模块来解析字符串,而不是手动处理字符串。

首先,我们需要导入json模块。然后,我们可以将包含JSON响应的字符串赋值给变量result

接下来,我们使用json.loads()方法来解析字符串。在这之前,我们需要将字符串转换为Unicode编码,以确保正确解析。

下面是解决这个问题的代码示例:

import json
result = b'{\n   "destination_addresses" : ...'
obj = json.loads(obj.decode('utf-8'))

通过使用json模块解析字符串,我们可以避免手动处理字符串中的续行符,确保我们只获取到有效的字符串内容。这种方法更加简洁和可靠,同时也提高了代码的可维护性和可读性。

0
0 Comments

问题的原因是在Python中去除字符串中间的连续字符时,使用了错误的转义字符。解决方法是使用正确的转义字符或者使用原始字符串。

在Python中,\是转义字符,所以在字符串字面值中必须要么加倍,要么使用原始字符串。所以正确的解决方法是使用results_str.replace('\\n', "")或者results_str.replace(r'\n', "")

另外要记住,Python中的字符串是不可变的,replace()方法返回一个新字符串,因为现有的字符串不能被修改。如果要保留修改后的字符串,需要将其赋值给一个变量,比如原来的变量名:results_str = results_str.replace(r'\n', "")

尽管你可能希望以一种不关心换行符的方式处理数据。看起来你的数据是JSON格式的,所以你应该使用Python的json模块来进行解析,而不是自己解析。

感谢你的评论。我之前尝试过加倍转义字符:results_str.replace('\\n', ""),但出现了一些问题,不知道为什么不起作用。我会看看JSON模块的相关内容。

等等,你没有将结果重新赋值给results_str吗?我会补充一些相关内容。

哦天啊。对不起,早上实在太早了……太尴尬了……给我投票并关闭这个问题吧……但还是感谢你推荐使用JSON,看起来非常方便。

0