如何在Python中创建多级JSON

时间:2018-04-21 15:27:31

标签: python json

我为了获得推文而消费tweepy,我想将它们推送到一个JSON文件中,如:

{
  "content": [
    {
      "text": "one tweet",
      "rts": 2,
      "favs": 17
    },
    {
      "text": "another tweet",
      "rts": 2,
      "favs": 17
    },
    {
      "text": "one last tweet",
      "rts": 2,
      "favs": 17
    }
  ]
}

所以我用:

import json
json_serial = "tweet"
my_json = {
  'content': {
    "text": json_serial,
    "rt": '2',
    "favs": '3',
  }
}
print(json.dumps(my_json))

但是这会给我一条JSON每条推文,我想知道如何创建一个JSON并将所有推文放入其中。

2 个答案:

答案 0 :(得分:0)

这是你要求的。 你需要将tweet数据附加到内容变量,然后最后你可以将它写入一个你想要使用它的方式的文件。它将生成一个有效的json。

import json
my_json = {"content": []}

tweets = ["one", "middle", "last"]
for tweet in tweets:
    dict_data = {
        "text": tweet,
        "rt": '2',
        "favs": '3',
    }

    my_json["content"].append(dict_data)
print(json.dumps(my_json,indent=4, sort_keys=True))

输出

{  
   "content":[  
      {  
         "text":"one",
         "rt":"2",
         "favs":"3"
      },
      {  
         "text":"middle",
         "rt":"2",
         "favs":"3"
      },
      {  
         "text":"last",
         "rt":"2",
         "favs":"3"
      }
   ]
}

答案 1 :(得分:0)

我不清楚你在问什么,这有帮助吗? 你是如何一次收到一条推文的?

import json
json_serial = 'tweet'
my_json = { 
    'content': [
        {"text": "tweet one",
        "rt": '1',
        "favs":'3',
        },  
        {"text": "another tweet",
        "rt": '2',
        "favs":'9',
        },  
        {"text": "yet another tweet",
        "rt": '3',
        "favs":'6',
        },  
    ]   
}
print(json.dumps(my_json))


$ python json-python.py 
{"content": [{"rt": "2", "text": "tweet", "favs": "3"}, {"rt": "2", "text": "tweet", "favs": "3"}, {"rt": "2", "text": "tweet", "favs": "3"}]}