Неожиданный EOF при синтаксическом анализе без использования ввода

может ли кто-нибудь сказать мне, что здесь не так. Я читаю текстовый файл, содержащий список словарей. [code][1] 'не уверен, почему добавлены вторые фигурные скобки... Я получаю эту ошибку только в цикле. Ответы на подобные ошибки, похоже, решаются с помощью input() или raw_input. 'читаю прямо из текстового файла, например

with open('mybundle.txt', 'r') as R:  
    list = []     
    my_data = R.read()  
    my_data = my_data.replace('[','')  
    my_data = my_data.replace(']','')  
    my_data.rstrip('\r\n')  
    my_data = my_data.split('},')  
import ast
for a in my_data:
    rec = a+'}'
    list.append(rec)
m = ast.literal_eval(list[100])  
#Now this works..  
print(m)  
print(m['open'])  

{'volume': 0, 'quoteVolume': 0, 'high': 260.00000522, 'low': 260.00000522, 'date': 1425801600, 'close': 260.00000522, 'weightedAverage': 260.00000522, 'open': 260.00000522}  
260.00000522  

try:  
df_=[ast.literal_eval(x) for x in list]  
df = pd.DataFrame(df_, index=['date'], columns=
["high","low","open","close","volume","quoteVolume","weightedAverage"])      

except EOFError:  
#my_data = pd.DataFrame(list(my_data))  
print(df.head())  

File "<unknown>", line 1 {"date":1503403200,"high":3959,"low":3838.4845461,"open":3881.999999,"close":3887.75413166,"volume":6580841.4708805,"quoteVolume":1683.41702938,"weightedAverage":3909.21640688}}

SyntaxError: неожиданный EOF при синтаксическом анализе


person mikey1    schedule 24.08.2017    source источник
comment
Вставьте свой код прямо сюда. Не делитесь скриншотами текста.   -  person user94559    schedule 24.08.2017


Ответы (1)


Помогает ли это вам увидеть проблему?

text = '{a},{b},{c}'

for part in text.split('},'):
    print('Part: {}'.format(part))
    print('Part with added curly brace: {}'.format(part + '}'))

# Output:
# Part: {a
# Part with added curly brace: {a}
# Part: {b
# Part with added curly brace: {b}
# Part: {c}
# Part with added curly brace: {c}}

Вы можете исправить это, не добавляя фигурную скобку к последнему элементу разбиваемого списка, или вы можете сделать какой-то более разумный анализ. (Если вы можете контролировать, как создается этот файл, рассмотрите возможность использования вместо этого формата сериализации, такого как JSON.)

person user94559    schedule 24.08.2017
comment
Ха-ха.. не уверен, смеяться или плакать. Спасибо! - person mikey1; 24.08.2017