Lui*_*cri 1 python unicode encoding file
我正在编写一个 twitter 事件检测器,在检测结束时我想将结果保存在 .txt 文件中。由于推文是用西班牙语写的,结果的某些单词可能包含重音符号,并且我在尝试按应有的方式保存它们时遇到了一些问题。
\n\ndef save_event(self, event, event_counter, output_file):\n saving_data = {}\n saving_data[\'_id\'] = event_counter\n saving_data[\'main_words\'] = event[2].split(\', \')\n saving_data[\'related_words\'] = [None] * len(event[3])\n related_words_loop = 0\n for related_word, weight in event[3]: # En la posicion 3 del array event se guarda la lista de palabras relacionadas\n word_json = {}\n word_json[\'word\'] = related_word\n formatted_weight = float("{0:.2f}".format(weight)) # Formateamos el peso a un decimal de dos digitos\n word_json[\'weight\'] = formatted_weight\n saving_data[\'related_words\'][related_words_loop] = word_json\n related_words_loop += 1\n\n saving_json = json.dumps(saving_data)\n with open(output_file, \'a\', encoding=\'utf-8\') as f:\n f.write(saving_json)\n f.write(\'\\n\')\n\ndef save_events(self, output_file):\n try:\n os.remove(output_file)\n except OSError:\n pass\n event_counter = 0\n for event in self.events:\n event_counter += 1\n self.save_event(event, event_counter, output_file)\nRun Code Online (Sandbox Code Playgroud)\n\n我正在指定我想要的文件编码with open(output_file, \'a\', encoding=\'utf-8\') as f:并阅读其他一些相关问题,这应该可行,但是当我检查创建的文件时,有些单词会被保存,就像\\u00e9ranse它们应该出现的那样\xc3\xa9ranse.
知道我是否遗漏了什么吗?
\n问题是如何生成 json 字符串:
saving_json = json.dumps(saving_data)
Run Code Online (Sandbox Code Playgroud)
默认会有ensure_ascii=True. 将其设置为 False 将使非 ASCII 字符保持原样。请参阅https://docs.python.org/3/library/json.html#json.dump
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |