如何仅提取并打印Excel文件中的英文字符串?
解决Excel中提取JSON格式字符串里的英文内容问题
首先看你的代码问题:你在字符串替换时不仅有变量名拼写错误(第一次替换后赋值给re,但后续用了未定义的res),更关键的是你的替换逻辑没有正确移除阿拉伯语部分,只是修改了分隔符,导致阿拉伯语内容被保留了下来。
下面给你两种解决方案,优先推荐第二种更稳健的方式:
方法1:修正字符串替换逻辑(快速应急)
如果暂时不想用JSON解析,可以调整替换逻辑,直接分割出英语部分:
for i in range(sheet.nrows): hotel_column = sheet.cell_value(i, 0) # 先移除开头的阿拉伯语前缀 temp_str = hotel_column.replace('{"ar": "', '') # 按中间的分隔符分割,取第二部分(英语内容+末尾标记) en_segment = temp_str.split('", "en": "')[1] # 移除末尾的标记 english_text = en_segment.replace('"}', '') print(english_text)
这样就能精准提取出英文部分,避免阿拉伯语内容残留。
方法2:使用JSON解析(推荐,更可靠)
因为你的单元格内容本质是转义后的JSON字符串("是HTML转义的双引号),用标准的JSON解析是最稳妥的方式,哪怕后续字符串格式有小变动(比如键的顺序、空格变化)都能正确提取:
import json for i in range(sheet.nrows): hotel_column = sheet.cell_value(i, 0) # 把转义的"还原成普通双引号,得到标准JSON字符串 valid_json = hotel_column.replace('"', '"') # 解析成Python字典 data_dict = json.loads(valid_json) # 提取"en"字段的内容,没有的话返回空字符串 english_text = data_dict.get('en', '') print(english_text)
这种方法从根本上处理了JSON格式的数据,比字符串替换更健壮,也更易维护。
内容的提问来源于stack exchange,提问作者Abdullah Md
相关产品推荐
相关产品推荐

