how to read .txt file having the following format.

I have text file attached, how can I read it like a table in MATLAB?
[{"ID":1,"Column_A":"red","Column_B":"apple","Column_C":0},{"ID":2,"Column_A":"orange","Column_B":"orange","Column_C":1},{"ID":2,"Column_A":"green","Column_B":"grapes","Column_C":3},{"ID":3,"Column_A":"purple","Column_B":"onion","Column_C":4}]

Answers (3)

readtable(), importdata(), etc.
You may just drag and drop the file into workspace to launch importwizard. Make the appropriate settings and then choose generate code to see the underlying specifics.
Regards.

4 Comments

importdata() save this txt info into one cell, after that I have to split the string using the strsplit functions? or is there any other way I can do that?
That would be way more tedium than doing it with importwizard.
importwizard is crashing my MATLAB.
Which version of matlab and what os are you on?

Sign in to comment.

Use the readcell function —
C1 = readcell('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1214888/example.txt')
C1 = 1×16 cell array
{'[{"ID":1'} {'Column_A:"red"'} {'Column_B:"apple"'} {'Column_C:0}'} {'{"ID":2'} {'Column_A:"orange"'} {'Column_B:"orange"'} {'Column_C:1}'} {'{"ID":2'} {'Column_A:"green"'} {'Column_B:"grapes"'} {'Column_C:3}'} {'{"ID":3'} {'Column_A:"purple"'} {'Column_B:"onion"'} {'Column_C:4}]'}
That will at least get it into your workspace.
.
fileContents = string(fileread("example.txt"))
fileContents = "[{"ID":1,"Column_A":"red","Column_B":"apple","Column_C":0},{"ID":2,"Column_A":"orange","Column_B":"orange","Column_C":1},{"ID":2,"Column_A":"green","Column_B":"grapes","Column_C":3},{"ID":3,"Column_A":"purple","Column_B":"onion","Column_C":4}]"
jsonStruct = jsondecode(fileContents)
jsonStruct = 4×1 struct array with fields:
ID Column_A Column_B Column_C
t = struct2table(jsonStruct)
t = 4×4 table
ID Column_A Column_B Column_C __ __________ __________ ________ 1 {'red' } {'apple' } 0 2 {'orange'} {'orange'} 1 2 {'green' } {'grapes'} 3 3 {'purple'} {'onion' } 4
t = convertvars(t,[2 3],"string")
t = 4×4 table
ID Column_A Column_B Column_C __ ________ ________ ________ 1 "red" "apple" 0 2 "orange" "orange" 1 2 "green" "grapes" 3 3 "purple" "onion" 4

Asked:

on 1 Dec 2022

Answered:

on 7 Dec 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!