初歩的な質問で恐縮です.
テキストファイルの中から一部を抽出し,辞書・JSON化したいと考えています.
しかし,以下のようなエラーメッセージが出てきました.解決して,下記のような出力を得たいと考えています(「理想の出力結果」参照).
原因と解決策をご教示いただけますと幸いです.宜しくお願いします.
エラーメッセージ
Traceback (most recent call last): File "pyautogui_penta.py", line 34, in <module> result = str(dict).decode('string-escape') AttributeError: 'str' object has no attribute 'decode'
該当のソースコード
#!/usr/bin/python # -*- coding: utf-8 -*- import re import pyautogui as pg import requests as rq import json as js import glob import os from datetime import datetime as dt from io import StringIO #ファイルを開く #年月日を抽出して曜日を削除 for line in open("test.txt", encoding="utf-8"): ma = re.search("202[0-9].[0-9]{1,2}.[0-9]{1,2}", line) if ma: tdt = dt.strptime(ma.group(0), '%Y.%m.%d') ymd = tdt.strftime('%Y-%m-%d') #print(tstr) #時間,ユーザー名,メッセージを抽出 line3 = [] for line2 in open("test.txt", encoding="utf-8"): mb = re.search("[0-9][0-9]:[0-9][0-9]", line2) if mb: list = line2.split() time = list[0] hms = time + ":00" name = list[1] message = list[2] line3.append(message) else: list = line2.split() if (len(list) < 2): line3[len(line3)-1] += list[0] for line4 in line3: message = line4 #jsonに変換 dict = {'time':time, 'name':name, 'message':message} result = js.dumps(dict, ensure_ascii=False) print(result)
txt
12020.08.13 木曜日 223:58 ポプ子 えいえい!怒った? 323:59 ピピ美 怒ってないよ. 42020.08.14 金曜日 501:00 天の声 何気ないマンボが 6サンバ師匠をきずつけた 701:30 ポプ子 エサヒィ~スープゥードゥラァァァ~イ!!! 802:00 ピピ美 しょーがねーだろ赤ちゃんなんだから
理想の出力結果
{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
プレビュー