Я преобразую загруженный диалог Facebook Messenger из JSON в текстовый файл, используя Python.Я преобразовал JSON в текст, и все выглядит хорошо.Мне нужно убрать ненужную информацию и изменить порядок сообщений, а затем сохранить вывод в файл, что я и сделал.Однако, когда я форматирую сообщения с помощью Python, когда я смотрю на выходной файл, иногда вместо апострофа, вместо него есть â.
Мой Python не очень хорош, так как я обычно работаю с Java, так что, вероятно, я могу многое улучшить.Если бы кто-то мог предложить несколько лучших тегов для этого вопроса, я также был бы очень признателен.
Пример работы апострофов: Вы не делаете их, не так ли?
Пример апострофов не работает: Это просто кнопка, которую я обнаружил
Что вызывает это, и почему это не происходит каждый раз, когда есть апостроф?
Вот сценарий:
#/usr/bin/python3
import datetime
def main():
input_file = open('messages.txt', 'r')
output_file = open('results.txt', 'w')
content_list = []
sender_name_list = []
time_list = []
line = input_file.readline()
while line:
line = input_file.readline()
if "sender_name" in line:
values = line.split("sender_name")
sender_name_list.append(values[1][1:])
if "timestamp_ms" in line:
values = line.split("timestamp_ms")
time_value = values[1]
timestamp = int(time_value[1:])
time = datetime.datetime.fromtimestamp(timestamp / 1000.0)
time_truncated = time.replace(microsecond=0)
time_list.append(time_truncated)
if "content" in line:
values = line.split("content")
content_list.append(values[1][1:])
content_list.reverse()
sender_name_list.reverse()
time_list.reverse()
for x in range(1, len(content_list)):
output_file.write(sender_name_list[x])
output_file.write(str(time_list[x]))
output_file.write("\n")
output_file.write(content_list[x])
output_file.write("\n\n")
input_file.close()
output_file.close()
if __name__ == "__main__":
main()
Редактировать: ответом на вопрос было добавление
import codecs
input_file = codecs.open('messages.txt', 'r', 'utf-8')
output_file = codecs.open('results.txt','w', 'utf-8')