Вы можете попробовать прочитать файл как csv с другим разделителем и получить первый столбец, затем применить ast.literal_eval
для преобразования в фактический словарь и преобразования обратно в фрейм данных:
import ast
output = pd.DataFrame(pd.read_csv('file.txt',sep='|',header=None).iloc[:,0]
.apply(ast.literal_eval).tolist())
print(output)
cid text time author
0 ABCD alphabets 1 week xyz
1 EFGH verb 2 week aaa
2 IJKL noun 3 days nop
Рабочий пример:
file = """{"cid": "ABCD", "text": "alphabets", "time": "1 week", "author":"xyz"}
{"cid": "EFGH", "text": "verb", "time": "2 week", "author": "aaa"}
{"cid": "IJKL", "text": "noun", "time": "3 days", "author": "nop"}"""
import io #dont need for reading a file directly , just for example
import ast
print(pd.DataFrame(pd.read_csv(io.StringIO(file),sep='|',header=None).iloc[:,0]
.apply(ast.literal_eval).tolist()))
cid text time author
0 ABCD alphabets 1 week xyz
1 EFGH verb 2 week aaa
2 IJKL noun 3 days nop