2017-04-14 109 views
0

我是Python的初學者。我導入了下面的Twitter測試源,將其更改爲JSON字符串,但無法將其轉換爲Python列表。我試過2個版本的代碼來做到這一點,其中一個我在這個網站上找到。下面列出了它們的輸出以及輸入字符串的一小段。我將不勝感激關於如何解決這個問題的任何建議,因爲我不清楚我做錯了什麼。無法將JSON轉換爲Python列表

1)輸入的字符串的子集稱爲tweet_text_list

'[\'#mindset on #millionaire #goals #stocks #world #class\\xa0 #financial #boss #finesse #moves\\xa0 #study the #money #game… , "#Stocks #Investing #Stockmarket #nanoStockAnalysis Infosys\' (INFY) CEO Vishal Sikka on Q4 2017 Results - Earnin... ", \'RT @ElixiumNeptune: #Trading with #Bitcoin\#Forex #Stocks $ES $CL $GC $GOOG $AAPL $TSLA $SPY $QQQ…\']'

2)的代碼,從該網站:

import json 

tweets_data = [] 

class JSONObject: 
    def __init__(self, dict): 
     vars(self).update(dict) 

tweets_data = json.loads(tweet_text_list, object_hook= JSONObject) 

輸出:JSONDecodeError: Expecting value: line 1 column 2 (char 1)

3)的另一種代碼的嘗試:

tweets_data = [] 

for line in tweet_list: 
    try: 
     tweet = json.loads(line) 
     tweets_data.append(tweet) 
    except: 
     continue 
print(tweets_data) 

輸出:[]

非常感謝您的幫助。

+0

「將其更改爲JSON字符串」...您是如何做到這一點的?因爲您在這裏沒有JSON字符串 –

+0

我使用了tweet_text_list = str([tweet.text用於tweet_list中的tweet]) – learningcompsci

回答

1

'[\'#mindset on #millionaire #goals #stocks #world #class\\xa0 #financial #boss #finesse #moves\\xa0 #study the #money #game… , "#Stocks #Investing #Stockmarket #nanoStockAnalysis Infosys\' (INFY) CEO Vishal Sikka on Q4 2017 Results - Earnin... ", \'RT @ElixiumNeptune: #Trading with #Bitcoin\#Forex #Stocks $ES $CL $GC $GOOG $AAPL $TSLA $SPY $QQQ…\']'

這不是一個JSON編碼的字符串。 JSON只使用引號而不是撇號來分隔字符串。 (你可以找到過here的JSON規範)

爲Python值轉換爲JSON編碼串正確的方法是經由json.dumps(),如:

tweet_text_list = json.dumps([tweet.text for tweet in tweet_list]) 
1

我用tweet_text_list = STR([ tweet.list for tweet in tweet_list])

這是一個Python字符串。如果你想要一個JSON字符串,試試這個。

tweets_json = json.dumps([tweet.text for tweet in tweet_list])