Python - 列入dict

时间:2016-03-01 18:32:58

标签: python dictionary twitter

我对编程非常陌生(现在开始学习我的第一堂课),所以请关注我的格式问题和误解,或者错过简单的修复。

我有一个带有推文数据的词典:'user'作为键,然后'text'作为它们的值。我的目标是找到他们回复另一个用户的推文,以@符号开头表示,然后创建一个包含作者用户和他回复的每个用户的新词典。这是我在下面的相当简单的陈述。我还能够使用split函数来隔离他们回复的人的用户名(该函数接受@符号和后面的下一个空格之间的所有文本)。 <击>

<击>
st='@'
en=' '
tweets1={}
for t in a,b,c,d,e,f,g,h,i,j,k,l,m,n:
    if t['text'][0]=='@':
         print(t['user']),print(t['text'].split(st)[-1].split(en)[0])
         tweets1(user,repliedto)=(t['user'],t['text'].split(st)[-1].split(en)[0])

<击>

st='@'
en=' '
task1dict={}
for t in a,b,c,d,e,f,g,h,i,j,k,l,m,n:
    if t['text'][0]=='@':
        user=t['user']
        repliedto=t['text'].split(st)[-1].split(en)[0]
        task1dict[user]=[repliedto]

Username1回复了username2。 Username2回复了username3和username5。

我正在尝试创建一个类似于:

的字典(caled tweets1)
'user':'repliedto'
username1:[username2]
username2:[username3, username5]

<击>

<击>

我遇到的问题是使用以下行:

tweets1(user,repliedto)=(t['user'],t['text'].split(st)[-1].split(en)[0]) 

我收到错误代码“SyntaxError:无法分配给函数调用”。 我尝试了不同的代码变体试图获得相同的结果,但没有找到一种有效的方法,可能是因为使用了split函数。

<击>

有没有更好的方法来隔离用户名,然后将它们放入新的dict中?以下是推文数据的2个条目样本:

{"user":"datageek88","text":"@sundevil1992 good question! @joeclarknet Is this on the exam?"},
{"user":"joeclarkphd","text":"Exam questions will be answered in due time @sundevil1992"}

我现在可以将它们添加到dict中,但它只会为每个'用户'保存一个'repliedto',所以不是显示username2已经回复了3和5,它只显示最新的一个,5 :

{'username1': ['username2'],
'username2': ['username5']}

再说一遍,如果我在这里做任何严肃的禁忌,我道歉,请告诉我我做错了什么!

感谢。

2 个答案:

答案 0 :(得分:1)

您正在使用括号,您应该使用方括号:

tweets1[user,repliedto] = (t['user'],t['text'].split(st)[-1].split(en)[0])

答案 1 :(得分:0)

这一行具有函数调用的形式:

tweets1(user,repliedto)=...

你不能分配给它。

tweets1是一本字典,你应该使用方括号[]