2015-10-11 72 views
1

我正在以json格式下載數據並將其保存到數據框中。如何解決TypeError:列表索引必須是整數,而不是列表?

data = [] 
for day in range(9,10): 
     request=Request('https://api..../10/'+str(day)+'/'+appId='+appID+') 
     response = urlopen(request) 
     arrivals = response.read() 
     d = json.loads(arrivals) 
     data.append(json_normalize(d['Statuses'])) 

data[column_names].to_csv("data.csv") 

但是這個代碼的最後一行提供了一個錯誤:

TypeError: list indices must be integers, not list 

它看起來像data是一個列表。我嘗試創建data如下:data = pandas.DataFrame(),但也有一個錯誤。 如何解決這個問題?

+0

你缺少一個右'''地方。請張貼逼真的代碼。 – juanchopanza

+0

'column_names'中有什麼?我在猜測一個列表? –

+0

@juanchopanza:這是現實的代碼。我無法發佈真正的安全原因請求。所有其他的東西都是從我的代碼複製粘貼。順便說一下,代碼在for循環中沒有「追加」的情況下工作。 –

回答

1

您的data是一個列表,因爲您在開始時定義它 - data = [] - 因此,當您嘗試使用另一個列表column_names訪問它們時,您會收到錯誤消息。

如果您嘗試來連接你從不同的請求得到了不同dataframes,你應該使用pandas.concatdata所有從列表中dataframes連接成一個單一的數據幀,訪問其列,並在其上使用to_csv之前。示例 -

data[column_names].to_csv("data.csv") 

應改爲 -

pd.concat(data)[column_names].to_csv("data.csv") 
+0

太棒了!非常感謝。 –

相關問題