Python格式化含内部引号的字符串时如何消除外层多余双引号
问题解决方法
你错误地将字典结构拼接为字符串类型,而非直接构造Python字典对象,这是所有问题的根源。
正确实现代码
你只需要修改列表生成逻辑,直接向列表中添加字典即可,不需要做字符串拼接:
coordinateslist = [] for i in range(len(lat)): # 直接构造字典对象,而非拼接字符串 coordinateslist.append({ "lat": str(lat[i]), "long": f"-{lon[i]}" })
使用时直接取出列表中的字典元素即可正常作为查询参数:
query_params = coordinateslist[0]
错误原因说明
- 你之前代码生成的是内容模仿字典语法的字符串,哪怕内容看起来和字典写法一致,本质仍是字符串类型,无法直接作为接口要求的字典格式查询参数使用。
- 你看到的外层双引号是Python输出字符串时的类型标识,不属于字符串本身的内容,所以用
replace、strip这类字符串处理方法自然无法删除。 - 你后续尝试的
{bb}写法是生成集合类型,而非字典类型,完全不符合查询参数的格式要求,所以会报错。
简化写法
你也可以用列表推导式简化代码:
coordinateslist = [{"lat": str(lat[i]), "long": f"-{lon[i]}"} for i in range(len(lat))]
内容的提问来源于stack exchange,提问作者sepehr
相关产品推荐
相关产品推荐

