2016-12-20 5 views
0

jsonファイルをcsvに変換しようとしています。私は以下の問題に悩まされました。「スニペット」の下の部分からデータを抽出したいと思います。 TypeError例外:リストインデックスは整数でなければなりません、Pythonでjsonファイルをcsvに変換する - TypeError:リストインデックスがstrでなく整数でなければならない

#!/usr/bin/python 

import json 

with open('input1.json') as json_data: 
data = json.load(json_data) 
for r in data ['items'] ['snippet']: 
    print (r ['kind']) 

ををstrそしてここでJSONファイルの一部ではありません。

{ 
"kind": "youtube#videoListResponse", 
"etag": "\"gMxXHe-zinKdE9lTnzKu8vjcmDI/a3mLolGMIuGWUS6prd_fSkWBK8c\"", 
"pageInfo": { 
"totalResults": 1, 
"resultsPerPage": 1 
}, 
"items": [ 
{ 

"kind": "youtube#video", 
"etag": "\"gMxXHe-zinKdE9lTnzKu8vjcmDI/Dv8RZiEKwUBsQIzhG2G0UrgyGKA\"", 
"id": "FiZlVR7UxiQ", 
"snippet": { 
"publishedAt": "2016-09-07T14:12:12.000Z", 
"channelId": "UC8_MMK_ePSIQf0cRvX63RkQ", 
"title": "Babusia - RODZINA PIRATÓW odc. 04 (PL)", 
"description": "Rodzina piratów to serial animowany opowiadający o rodzinie  
piratów, która mieszka na wyspie wraz z innymi mieszkańcami. Co dzień 
pirat Wiktor Mac Bernic poszukuje skarbów, które są ukryte na wyspie.  
Jednak przeszkadza mu w tym jego sąsiad Albert Derekin wraz z jego 
rodziną. Na dodatek jego syn jest zakochany w Krewetce, czyli córce 
Wiktora.", 
"thumbnails": { 
"default": { 
"url": "https://i.ytimg.com/vi/FiZlVR7UxiQ/default.jpg", 
"width": 120, 
"height": 90 
}, 

私は次のスクリプトをしようとしていたが、それはエラーを返し

だから問題は、この場合、セクション「スニペット」からアイテムを抽出する方法です。

答えて

0

itemsはリストです。そのリストの要素ではなく、リスト内のフィールドにアクセスしようとしています。

それはように入れ子になっています:

  • dictのリスト辞書の辞書

が、それはこのような構造をしているかのようにあなたがそれにアクセスしている:

  • 辞書の辞書のリスト辞書

これを行う1つの方法は次のとおりです。

#!/usr/bin/python 

import json 

with open('input1.json') as json_data: 
data = json.load(json_data) 
for r in data ['items']: 
    snippet = r ['snippet'] 
    print (snippet ['kind']) 
関連する問題