初歩的な質問で恐縮です.
テキストファイルの中から一部を抽出し,辞書・JSON化したいと考えています.
しかし,望んだ出力が得られずにいます.具体的に解決したい点としては,
・時間とユーザー名の出力がtxtの最終行に引っ張られているので,順番通りに表示させたい
・JSONに通し番号をつけたい
の2点です.
解決して,下記のような出力を得たいと考えています(「理想の出力結果」参照).
解決策をご教示いただけますと幸いです.宜しくお願いします.
該当のソースコード
python
1#!/usr/bin/python 2# -*- coding: utf-8 -*- 3import re 4import pyautogui as pg 5import requests as rq 6import json as js 7import glob 8import os 9from datetime import datetime as dt 10from io import StringIO 11 12#ファイルを開く 13#年月日を抽出して曜日を削除 14for line in open("test.txt", encoding="utf-8"): 15 ma = re.search("202[0-9].[0-9]{1,2}.[0-9]{1,2}", line) 16 if ma: 17 tdt = dt.strptime(ma.group(0), '%Y.%m.%d') 18 ymd = tdt.strftime('%Y-%m-%d') 19 #print(tstr) 20 21#時間,ユーザー名,メッセージを抽出 22line3 = [] 23for line2 in open("test.txt", encoding="utf-8"): 24 mb = re.search("[0-9][0-9]:[0-9][0-9]", line2) 25 if mb: 26 list = line2.split() 27 time = list[0] 28 hms = time + ":00" 29 time = ymd + " " + hms 30 print(time) 31 32 name = list[1] 33 message = list[2] 34 35 line3.append(message) 36 else: 37 list = line2.split() 38 39 if (len(list) < 2): 40 line3[len(line3)-1] += list[0] 41 42for line4 in line3: 43 message = line4 44 45 #jsonに変換 46 dict = {'time':time, 'name':name, 'message':message} 47 result = js.dumps(dict, ensure_ascii=False) 48 print(result) 49 #r = requests.post("https://m4nlxro2rk.execute-api.ap-northeast-1.amazonaws.com/prod/", data=result) 50 #print(r.text)
txt
12020.08.13 木曜日 223:58 ポプ子 えいえい!怒った? 323:59 ピピ美 怒ってないよ. 42020.08.14 金曜日 501:00 天の声 何気ないマンボが 6サンバ師匠をきずつけた 701:30 ポプ子 エサヒィ~スープゥードゥラァァァ~イ!!! 802:00 ピピ美 しょーがねーだろ赤ちゃんなんだから
現在の出力結果
{"time": "2020-08-14 02:00:00", "name": "ピピ美", "message": "えいえい!怒った?"} {"time": "2020-08-14 02:00:00", "name": "ピピ美", "message": "怒ってないよ."} {"time": "2020-08-14 02:00:00", "name": "ピピ美", "message": "何気ないマンボがサンバ師匠を傷つけた"} {"time": "2020-08-14 02:00:00", "name": "ピピ美", "message": "エサヒィ~スープゥードゥラァァァ~イ!!!"} {"time": "2020-08-14 02:00:00", "name": "ピピ美", "message": "しょーがねーだろ赤ちゃんなんだから"}
理想の出力結果
{1:{time:"2020-08-13 23:58:00", name:"ポプ子", message:"えいえい!怒った?"}, 2:{time:"2020-08-13 23:59:00", name:"ピピ美", message:"怒ってないよ."}, 3:{time:"2020-08-14 01:00:00", name:"天の声", message:"何気ないマンボが サンバ師匠をきずつけた"}, 4:{time:"2020-08-14 01:30:00", name:"ポプ子", message:"エサヒィ~スープゥードゥラァァァ~イ!!!"}, 5:{time:"2020-08-14 02:00:00", name:"ピピ美", message:"しょーがねーだろ赤ちゃんなんだから"}}
補足情報(FW/ツールのバージョンなど)
MacOS10.15.4, Python3.7.3, Atom
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/18 06:09