2016-03-01 111 views
-1

我对编程非常陌生(现在就参加我的第一堂课),请耐心等待格式问题和误解,或者错过简单修复。Python - 列入字典

我有一个推特数据的词典:'用户'作为键,然后'文字'作为他们的价值观。我的目标是找到他们回复给其他用户的推文,以@符号开头表示,然后制作一个新的词典,其中包含作者的用户以及他回复的每个人的用户。如果我有以下陈述,那是相当简单的。我还能够使用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:can not分配给函数调用“。 我已经尝试了不同的代码尝试实现相同的结果,并没有找到一种可行的方式,可能是因为使用分裂功能。

是否有更好的方法来隔离的用户名,然后把它们放入一个新的字典?这里的鸣叫数据的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"} 

我现在能够将它们添加到字典,但它只能救一个“repliedto”为每个“用户”,这样反而显示USERNAME2已回答双方3和5,它只是显示最新的一个,5:

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

同样,如果我犯一个严重的在这里没有没有任何地方,我道歉,请告诉我我在做什么错误!

谢谢。

+0

我进行了更改代码和岗位,并编辑我的新问题。 –

+0

请开始一个新问题,而不是对原始文件进行批量更改。 – chepner

+0

请问您能否回滚到原始问题,接受最佳答案并为第二个问题创建一个新问题? – purpletentacle

回答

0

此行有一个函数调用的形式:

tweets1(user,repliedto)=... 

,你不能分配给。

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

1

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

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

谢谢!我做了一些改变,你是否能够再次阅读这篇文章,看看你能否帮助解决我的新问题? –