json処理するのが初めてなので、とりあえずchatGTPに目標ソースを書かせて、分からんところをディグる感じでやってる 基本はCSVやテキストの読み込みと変わらない感じなんだけど、前処理をして辞書型のリストで読み込みforでぶん回して必要な部分を引くという感じらしい 辞書型ちゃんと使うの初めて
2024-01-22 23:12:23型がどうなってんのかよく分かんなかったので、今日は読み込みと型の分解まで 2010年から2020年くらいまでのデータ読んでるはずなんだけど読み込みだけなら爆速で終わってるので、データ抜き出しもそんな時間かかんなそうだな~という印象です
2024-01-22 23:14:36ちょっとあとで検証するメモ loadするとjsonの順番を保持せず読み込んでしまうのでつけるオプションがあるらしいんだけど、コードのどこがそれに該当するか分からん qiita.com/Morio/items/51…
2024-01-22 23:17:26こちらの記事によると、python3.7(ファイナルリリース2018年)までは順番保持してくれなかったんだが、3.8からは保持してくれるようになったらしい 道理で順番処理の記事に2016年周辺が多いわけだ helve-blog.com/posts/python/p…
2024-01-22 23:27:08お風呂入りたいから今日ここまで openオプションにencodingつけないとUnicodeDecodeError: 'cp932' codec can't decode byte 0x81 in position 767: illegal multibyte sequenceエラーが出ます pic.twitter.com/QIKnMMeA7v
2024-01-22 23:29:12最終目標形 多分今回くらいしか使わないけど、1つの関数にダラダラ書くとテストがダルいので、この程度に分けたい 書きながら変えてく 今回の裏目標は「データ型を意識しよう」 pic.twitter.com/iOt450unIM
2024-01-25 19:01:01docstringを書いてみようかな、と思ったんですが、確かに有用だけどとりあえず実現したいモチベが持つ気がしないので今回スルーで ただ今回わりと小規模なので、原稿に余裕あったら書きたいなと思います docはマジで書いてあれば書いてあるほどいいので
2024-01-25 19:08:37あ、これだと返信先に複数指定できないな keyごとに抜き出し方を分けて実装するのがいいのかな、と思ったけどこれだと毎回list読み込むことになってクソ重そう んーケース文使う? 抜き出したい要素と条件が入り乱れてるのか、じゃあparamを変えたほうよさそう もっかいkeyリスト見て見よう
2024-01-25 19:28:12in_reply_to_screen_nameがユーザーIDなので、返信先ユーザーを限定したかったらこっちを指定しないとなのね あとこれは公式のパラメータドキュメント developer.twitter.com/en/docs/twitte…
2024-01-25 19:40:28あー 一個の関数で条件分けダラダラ書くより、縛りのある/なしで関数を割ったほうが楽だな 使用パターン的にも、全部抜き出すより年代・返信先・いいね数RT数とかで分けたいし これdictリストの形式のまま何回かに分けてリストを選別して、最後にcsvに出すのがいいかも
2024-01-25 19:46:19というわけでペーパープロトを書き直し、1個だけ実装 時間比較のところは参考元のqiita記事と🐍公式doc(docs.python.org/ja/3/library/d…)を参照して加減算の条件を納得 計算に不必要なタイムゾーン要素を削除(replace)し、datetime要素を正規化して計算 1枚目は時間のtype確認メモ pic.twitter.com/eeToPeSudp
2024-01-25 21:40:44あ?なんか3枚も同じ写真添付してたな まあいいや あんま元要素削除するのもアレかなーと思ったけど、そんな強いマシンじゃないのでメモリ優先で これは混乱したのでメモ pic.twitter.com/wlQ57o6acR
2024-01-25 21:42:51とりあえず納得いく動きはしてるけど、書きだし数が1000個越えたあたりから要領足りないって怒られる のでミニバッチ式に書き換える必要があるんだけどめんどくせ~~~~ てかSurfaceそこまでよわよわだっけ? pic.twitter.com/4IVG2L91ST
2024-01-25 23:11:16多分元jsonの仕様っぽいんだけど、@ツイート>自分のツイートの順位で時系列が並んでるっぽいので、特定時期のド頭から吸おうとすると@ツイートしか取得できないのと、pythonで読み込む時にjsonの順番が保持されてないっぽい 2015年の1月1日にリプライ以外のツイートがあるはずなんだけど、それがない
2024-01-25 23:45:01同梱されてたhtmlで見て見るとほんとに2015年のツイートにリプライしかない 抜き出した時の時系列はやっぱぐちゃぐちゃっぽい とりあえず最新データをDLするのと、その間にリプライ先でのフィルター関数とcsv出力のミニバッチ化を実装します
2024-01-26 00:12:25とにかく見れる形で実装してえ!という人向けに置いときます。このページはログイン要らずで見れるようにしました pyhtonでtwitterからダウンロードしたjsonデータをいいカンジにcsvに出力する flatrot.starfree.jp/Friday/dokuwik…
2024-01-26 00:29:00ッシャ今日の分頑張りますよ 今日までの全件データ落としたし、足りない分はついろぐ目チェック+人力コピペは後から🐍成形の腹を決めたので 今日やることリスト ・フルテキスト取得時に改行を“\n”記号に置き換える ・年単位での抜き出しが可能かチェック、できるならミニバッチやめる ・抽出完遂
2024-01-27 21:09:19tweets.jsからjsonをloadする際に消す冒頭のwindow.YTD~の文字列が2020年に落としたデータと今日落としたのと違ってたのでエラー吐いた 冒頭100行だけ引っ張ってくるやつ残しといて良かった
2024-01-27 21:33:40リスト現状 ☑フルテキスト取得時に改行を“\n”記号に置き換える ☑年単位での抜き出しが可能かチェック、できるならミニバッチやめる ・返信先フィルターの実装 ・抽出完遂
2024-01-27 21:59:21リプライだがリプライ先要素のin_reply_to_screen_nameを持ってないツイートがある IDで指定するようにしたら確実だけどユーザーフレンドリーではない fulltextを見て判断するしかないんだけど、処理が重くなりそう うーんどうしようかな 本文文字化けしてるのはとりあえず関係ないので置いとく pic.twitter.com/9JE10UCLbj
2024-01-27 22:23:31フルテキストからユーザーIDに該当する部分を正規表現で抜き出し(検索なのでリザルトが一次元リストで戻ってくる)て、そのIDが排除したいユーザーIDと一致してるかをチェックするように作り直した。ただこれは複数人相手のリプライに対応していない→
2024-01-27 23:09:57たとえば複数人にリプライして、かつ一番最初のリプライ先が排除したいユーザーリストと合致しなかった場合はすり抜けてCSV保存されるようになってます ただ今回は自分宛リプライ以外は全部切ることにしたので、とりあえず放置 あーあと考えられるケースとしては知らずに巻き込みリプしちゃったとか
2024-01-27 23:11:24んであとRTツイートかどうかの判定ね これはうっかり全検索するとRTツイートじゃないやつまで含むので、必ず先頭だけ見るように正規表現を書く必要がある これは標準ライブラリのstartswithメソッド(str)を使えばいいらしい GPT君はなんでも知っていて偉い
2024-01-27 23:33:46できた とりあえず全部抽出して、直近の2年を使って確認してるんだけど、全部出てるしtokenblとかに充てたツイートも入ってる で、次はこの謎の改行ツイをどうにかしたい pic.twitter.com/fmV8lDyXoq
2024-01-27 23:51:47あーあとほんとに全件出てんのか?ていう確認で、ついろぐの記録と辞書データのサイズを比較 ざっくり去年の合計ツイート数を700ツイ×10か月くらいに丸めて、2023年データの処理数(リプライ、RTを削除)と比較するとまあまあそれっぽい数出てる pic.twitter.com/2zcx0Mob0O
2024-01-28 00:01:16☑返信先フィルターの実装 ☑抽出完遂 明日は謎の改行ツイートの謎を片付けるよー ちょっと組んでみて無理そうだったら投げてvivliostyleのcss作りに戻ります ページ割り作ったからその通りになるようcss書くよ~
2024-01-28 00:02:52昨日の続き 2023年データと2022年データに同じ改行バラけたデータがあるので、おそらく自家RTと検討をつける ついろぐから自家RTと思われるツイートを発掘して元ツイのfull_textがどうなっているかを確認する なお改行コード置換はちゃんと稼働しているっぽい pic.twitter.com/jw2J8Gh14h
2024-01-28 10:28:33dateフィルターを日付だけでなく時間でも見れるようにする した んでもって自家RTした日付のとこだけ探したんだけど出てこない…? そして今度は本文にRT入ってるやつが出てきてあれフィルターすり抜けたか?と思ったが、これはreply_user_IDに自分宛が入ってるな じゃあいいや うーん? pic.twitter.com/aUDDjOQuww
2024-01-28 10:30:34json処理するのが初めてなので、とりあえずchatGTPに目標ソースを書かせて、分からんところをディグる感じでやってる 基本はCSVやテキストの読み込みと変わらない感じなんだけど、前処理をして辞書型のリストで読み込みforでぶん回して必要な部分を引くという感じらしい 辞書型ちゃんと使うの初めて
2024-01-22 23:12:23