解析不使用输入时意外的EOF

解析不使用输入时意外的EOF

问题描述:

有人可以告诉我这里有什么问题。我正在阅读包含字典列表的文本文件。 [code] [1] '我不知道为什么添加第二个花括号......我只在循环中得到这个错误。类似错误的答案似乎解决了使用input()或raw_input。 “AM直接从文本文件中读取像解析不使用输入时意外的EOF

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}} 

语法错误:意外的EOF在解析

+1

将代码直接粘贴到此处。不要共享文字的屏幕截图。 – smarx

这是否帮助你看到的问题?

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这样的序列化格式。)

+0

哈哈..不知道该不该笑或哭。谢谢! – mikey1