2015-07-03 52 views
4

我目前正在嘗試使用熊貓,JSON和Python 3.4打印來自文本文件的數據。如何讓熊貓打印出數據而不是內存地址?

當我在朋友的機器上運行Python 2.7上的代碼時,它可以正常工作,但不適用於Python 3.4。

這裏是我的代碼:

import json 
import pandas as pd 

tweets_data_path = 'tweets.txt' 

tweets_data = [] 
tweets_file = open(tweets_data_path, "r") 
for line in tweets_file: 
    try: 
     tweet = json.loads(line) 
     tweets_data.append(tweet) 
    except: 
     continue 

print (len(tweets_data)) 

tweets = pd.DataFrame() 
tweets['text'] = map(lambda tweet: tweet['text'], tweets_data) 
tweets['lang'] = map(lambda tweet: tweet['lang'], tweets_data) 
tweets['country'] = map(lambda tweet: tweet['place']['country'] if tweet['place'] != None else None, tweets_data) 

for i in range(len(tweets_data)): 
    print(tweets['text'][i]) 

而不是打印的鳴叫的數據,它打印數據的存儲位置。例如

<map object at 0x04988050> 
<map object at 0x04988050> 

如何獲得它打印出實際的tweet數據?

+1

在Python 3中,我需要使用'list(map(...))'。 – ZdaR

+1

@ZdaR如何將此作爲答案? – galath

回答

2

您需要先將其轉換爲列表。所以只需將map(lambda...)更改爲list(map(lambda...))

+0

這工作!謝謝!只需等待7分鐘即可接受您的答案。 – Joseph

+0

超棒的男人!很高興我能幫上忙。 – fosho