Python for循环遍历列表仅输出单个字符、无法取完整字符串如何解决
问题根因
你在执行正则替换时,先通过str(Tick)将整个列表转为了字符串类型,正则处理完成后Tick就不再是列表结构,而是一个完整的长字符串。遍历字符串默认会逐字符读取,所以才会出现逐字符打印的问题。
修复方案
不要对整个列表转字符串后做替换,改为对列表内的每个元素单独做正则处理,调整后代码如下:
import re # 提取Ticker列原始列表 Tick = list(crypto['Ticker']) # 逐元素处理正则替换,处理后仍保持列表结构 Tick = [re.sub(r'-\(.*?\)-', '', item) for item in Tick]
调整后Tick仍是列表类型,每个元素都是处理完成的完整币种名称,后续遍历即可正常获取完整字符串传入接口:
# 正常调用接口获取价格 price_result = [cg.get_price(ids=item, vs_currencies='usd') for item in Tick]
如果不想改动原有正则处理的逻辑,也可以通过ast模块将处理后的字符串转回列表(不推荐该做法,逐元素处理性能和稳定性更好):
import ast Tick = ast.literal_eval(Tick)
内容的提问来源于stack exchange,提问作者crispYpickle
相关产品推荐
相关产品推荐

