Python按字母分类存储爬虫数据为JSON及去除换行符方法
解决方案
1. 按字母分类构建字典结构
初始化一个空字典存储分类后的数据,遍历每条爬取到的搭配时,提取搭配内容的首字母并转为大写,以此作为字典的键,将对应搭配项归入该键对应的列表中。
2. 去除collocation字段开头的换行符
对每个搭配项的collocation字段,用lstrip('\n')精准移除开头的换行符;如果需要清除字段前后所有空白字符(包括空格、换行等),直接用strip()即可。
完整代码示例
假设你已经完成网页爬取,得到了包含所有搭配数据的列表all_collocations(每个元素是带collocation字段的字典),处理代码如下:
import json # 此处替换为你爬取到的原始数据列表 # all_collocations = [...] # 初始化分类字典 letter_collocations = {} for item in all_collocations: # 清理collocation字段开头的换行符 cleaned_colloc = item['collocation'].lstrip('\n') item['collocation'] = cleaned_colloc # 确保字段不为空再处理分类 if cleaned_colloc: first_char = cleaned_colloc[0].upper() # 仅处理A-Z字母开头的搭配 if first_char.isalpha() and 'A' <= first_char <= 'Z': # 字母键不存在则创建空列表 if first_char not in letter_collocations: letter_collocations[first_char] = [] letter_collocations[first_char].append(item) # 保存分类后的JSON文件 with open('collocations_by_letter.json', 'w', encoding='utf-8') as f: json.dump(letter_collocations, f, indent=2, ensure_ascii=False)
补充说明
- 若遇到非字母开头的搭配,代码会自动跳过分类,你可以根据需求添加逻辑(比如归入"Other"键下)。
- 保存时指定
encoding='utf-8'和ensure_ascii=False,能避免英文内容出现乱码。
内容的提问来源于stack exchange,提问作者NewPartizal
相关产品推荐
相关产品推荐

