2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Skypeの履歴 'messages.json' をPythonでいい感じに出力する

Posted at

Skypeの履歴を出力したいと思いましたが、
アプリからまとめてコピペができなかったので
こちらのページから履歴をダウンロードしました。

ファイルとチャット履歴のコピーの要求

ダウンロードできたのは'messages.json'
エクスポート用のメッセージ ビューアーで見るといいらしいのですが
ダウンロードできませんでした。macには対応していないのかな?

そこで、pythonで読みやすく出力してみました。

skype2txt.py
import json

# jsonファイル読み込み
json_open = open('messages.json', 'r')
json_load = json.load(json_open)

#ざっくり確認
#print(json_load)

# conversationsから印刷したいスレッドを探す
df = pd.json_normalize(json_load,record_path='conversations')

# 印刷したいスレッドを指定
df1 = df.iloc[1]
df2 = pd.json_normalize(df1['MessageList'])
#df2.head(1)

# idがUNIX時間なので、ソートして変換
df2 = df2.sort_values(by="id")
df2['timestamp'] = df2['id'].astype(int)/1000
df2['timestamp'] = pd.to_datetime(df2['timestamp'].astype(int), unit='s')

画面で確認する

skype2txt.py
for index, row in df2.iterrows():
    print()
    print(row['timestamp'])
    print(row['displayName'])
    print(row['content'])

#印刷して確認する

f = open('skype.txt', 'w', encoding='UTF-8')
for index, row in df2.iterrows():
    f.write('')
    f.write(row['timestamp'])
    f.write(row['displayName'])
    f.write(row['content'])
f.close() 

残念、印刷すると改行がうまく反映されない。

とりあえず、ざっくり見渡すのはこれでよさそうです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?