【问题标题】:Unexpected EOF while parsing not using input解析不使用输入时出现意外的 EOF
【发布时间】:2018-02-02 09:17:05
【问题描述】:

谁能告诉我这里出了什么问题。我正在阅读一个包含字典列表的文本文件。 [代码][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

【问题讨论】:

  • 直接在此处粘贴您的代码。不要分享文字截图。

标签: python eof


【解决方案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 等序列化格式。)

【讨论】:

  • 哈哈..不知道该笑还是该哭。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-04-25
  • 2021-03-21
  • 2019-04-28
  • 2011-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多