在字典中提取特定的键值

时间:2018-05-19 19:15:29

标签: python json

我正在学习使用Python和Twitter API。用户的信息保存为json文件。

基本上,json文件存储了一个词典列表:

data = [{1}, {2}, {3}, {4}, {5}]

在每个字典中都有一些信息,f.ex。:

[
  {
    "created_at": "2018-04-28 13:12:07", 
    "favorite_count": 0, 
    "followers_count": 2, 
    "id_str": "990217093206310912", 
    "in_reply_to_screen_name": null, 
    "retweet_count": 0, 
    "screen_name": "SyerahMizi", 
    "text": "u can count on me like 123 \ud83d\ude0a\ud83d\udc6d"
  }, 
  {
    "created_at": "2018-04-26 04:21:48", 
    "favorite_count": 0, 
    "followers_count": 2, 
    "id_str": "989358860937846785", 
    "in_reply_to_screen_name": null, 
    "retweet_count": 0, 
    "screen_name": "SyerahMizi", 
    "text": "Never give up"
  }, 
]

我只是想在每个字典中仅打印“文本”信息,但我一直收到错误

TypeError: list indices must be integers, not str

这是我到目前为止所拥有的:

import json
    with open('981452637_tweetlist.json') as json_file:
        json_data = json.load(json_file)
        lst = json_file['text'][0]
        print lst

所以对我需要的任何帮助或解释都会很棒。谢谢!

2 个答案:

答案 0 :(得分:2)

正如错误所暗示的那样,列表索引必须是'int'而不是'str'。您错误地将列表作为字典和字典作为列表。正确的代码将是:

cumprod

答案 1 :(得分:1)

您可以使用for循环。

let @a=0 | %s/STRING/\=get(foo, @a+setreg('a',@a+1))/g

如果你想要它在同一行,你可以改为制作一个列表并在for循环中追加它。