Python 2.7 如何为时间序列(如python中的数据)构建嵌套字典类型的数据结构?

Python 2.7 如何为时间序列(如python中的数据)构建嵌套字典类型的数据结构?,python-2.7,dictionary,Python 2.7,Dictionary,我正在尝试为以下输出创建嵌套字典或类似结构: 2014-08-19 23 positive 2014-08-19 23 neutral 2014-08-19 23 positive 2014-08-19 23 bot 2014-08-19 23 positive 2014-08-19 23 positive 2014-08-19 23 bot 2014-08-19 23 positive 2014-08-19 24 positive 2014-08-19 24 positive 2014-08-

我正在尝试为以下输出创建嵌套字典或类似结构:

2014-08-19 23 positive
2014-08-19 23 neutral
2014-08-19 23 positive
2014-08-19 23 bot
2014-08-19 23 positive
2014-08-19 23 positive
2014-08-19 23 bot
2014-08-19 23 positive
2014-08-19 24 positive
2014-08-19 24 positive
2014-08-19 24 bot
2014-08-19 24 positive
2014-08-20 07 positive
2014-08-20 07 positive
2014-08-20 07 positive
2014-08-20 07 bot
2014-08-20 07 positive
2014-08-20 07 neutral
2014-08-20 08 neutral
2014-08-20 08 positive
2014-08-20 08 bot
2014-08-20 08 positive
2014-08-20 08 positive
2014-08-20 08 positive
2014-08-20 08 bot
2014-08-20 08 positive
理想情况下,我希望输出类似于以下内容:

2014-08-19:{
            23:{
                positive:5,neutral:1,bot:1}
            24:{
                positive:3, neutral:0,bot:1}}
2014-08-20: {
            07:{
                positive:4,neutral:1,bot:1}
            08:{
                positive:5, neutral:1,bot:2}}
等等。以下是我目前的情况:

collect_tweet={}

for line in open('time_short.txt'):
    line=line.strip().split(' ')

    if line[0] not in collect_tweet:
        collect_tweet[line[0]]= {}
        if line[1] not in collect_tweet[line[0]]:
            collect_tweet[line[0]][line[1]]=[]

    collect_tweet[line[0]][line[1]].append(line[2])

有什么想法或建议可以做到这一点吗?

你真的很接近了;这将实现您想要的:

collect_tweet = {}

with open('time_short.txt') as file:
        for line in file.readlines():
                vals = line.rstrip().split()
                if vals[0] not in collect_tweet:
                        collect_tweet[vals[0]] = {}
                if vals[1] not in collect_tweet[vals[0]]:
                        collect_tweet[vals[0]][vals[1]] = {}
                if vals[2] not in collect_tweet[vals[0]][vals[1]]:
                        collect_tweet[vals[0]][vals[1]][vals[2]] = 1
                else:
                        collect_tweet[vals[0]][vals[1]][vals[2]] += 1

print collect_tweet