Я хотел бы прочитать несколько текстовых файлов, но они слишком длинные, поэтому я хочу прекратить читать их при первом '}'
.
РЕДАКТИРОВАТЬ: приведенный ниже код работает без ошибок, но не удается обрезать текстовый файл, когда он встречает '}'
в первый раз. Я хотел бы прекратить чтение в конце второй строки образца (где есть '}'
)
РЕДАКТИРОВАТЬ 2: я добавил readline
заявление в коде.
SAMPLE:
{"offset":"14758816658","bids":[["968899.79379","0.01000000","0.01000000","0","1093577338","29194","5","14758816598","1"],["968899.35295","0.02100000","0.02100000","0","1093577193","29194","5","14758816186","1"],
...["9999999.00000","0.01000000","0.01000000","0","568775590","75620","5","12301971393","1"]]}
{"offset":"14758825743","bids":[["968019.05000","0.09815250","0.09815250","0","1093580802","243454","5","14758825261","1"],["968019.00000","0.18740000","0.18740000","0","1093580826","221763","5","14758825331","1"],
КОД:
with open(fileName, 'r') as fileName:
line = fileName.readline()
for x in line:
if x == '}':
break
data = pd.read_csv(fileName, lineterminator= str(']'), low_memory= False, error_bad_lines=False, header= None)
print(data)
РЕДАКТИРОВАТЬ: я запускаю код, как показано ниже. Правильный вывод для print
, но все еще весь набор данных, когда я pd.read.csv
with open(fileName, 'r', encoding='utf-8') as fileName:
print(re.findall(r'(\{[^\{\}]*})', fileName.readline())[0])
data = pd.read_csv(fileName, lineterminator= str(']'), low_memory= False, error_bad_lines=False, header= None)
РЕДАКТИРОВАТЬ 2: РЕШЕНИЕ
with open(fileName, 'r', encoding='utf-8') as fileName:
d = io.StringIO(re.findall(r'(\{[^\{\}]*})', fileName.readline())[0])
data = pd.read_csv(d, lineterminator= str(']'), low_memory= False, error_bad_lines=False, header= None)