2016-07-26 61 views
0

我使用此代碼從我在文件內寫入的Feed獲取推文。 當我讀取文件,並嘗試json的行我總是得到一個錯誤。json.loads或json.load()發佈結果

def SearchTwt(api): 
    os.chdir('/Users/me/Desktop') 
    SearchResult = api.search(q='market',lang='en',rpp=20) 
    text_file = open("TweetOut.txt", "w") 
    for tw in SearchResult: 
     text_file.write(str(tw)) 
     print(str(tw)) 
    text_file.close() 

我閱讀該文件:

def readfile(): 
    tweets_data = [] 
    os.chdir('/Users/me/Desktop') 
    file = open("TweetOut.txt", "r") 

    for line in file: 
     parts = line.split("Status(") 

     print (len(parts)) 
     for part in parts: 
      tweet = 'Status('+part 
      if len(tweet) > 10: 
       tweetj = json.loads(tweet) 
       #tweets_data.append(tweet) 
       print(tweet) 
    file.close() 

可能這是不對的,以填補S​​TR(TW)的文件?是的,我在閱讀過程中重建了字符串,因爲我認爲推文就是這樣開始的。所以可能是另一個錯誤。

我嘗試了很多其他的選擇。

錯誤: 從無 json.decoder.JSONDecodeError提高JSONDecodeError( 「期待值」,S,err.value):期待值:第1行第1列(CHAR 0)

文件開始等這(根據堆棧問題編輯url): Status(source ='SocialFlow',id = 757991135465857024,in_reply_to_status_id = None,is_quote_status = False,entities = {'hashtags':[],'user_mentions':[],'符號 ':[], '網址':[{' URL「: '', 'expanded_url': '', 'DISPLAY_URL':

回答

2

的文件是不是有效的JSON應該是這樣的

{ 
    "source": "SocialFlow", 
    "id":"757991135465857024", 
    ... 
    "entities": { 
    "hashtags": [], 
    "user_mentions": [], 
    ... 
    } 
} 

因爲它不是有效的json,你必須以不同的方式解析它,或者確保在保存文件時將它寫爲json。

+0

好吧,我將文件另存爲txt。我會嘗試這一個:http://stackoverflow.com/questions/12309269/how-do-i-write-json-data-to-a-file-in-python – pierre

+0

沒有遠遠與此代碼:json。 dump(SearchResult,text_file,ensure_ascii = False)引發TypeError(repr(o)+「不是JSON序列化」) – pierre

+0

我沒有給你代碼......這只是一個觀察,你的JSON是錯誤的。另外我不知道你存儲的所有JSON,所以我不能幫你用實際的代碼......這就是爲什麼我用三個點來表示填充空白 – MiltoxBeyond