这是我的密码:
with open('step3_desired_output.txt') as f, open('jout.txt', 'w') as fout:
for line in f:
jline = json.dumps(line)
#jline2 = jline['Title']+'\t['+jline['"'+'Actor'+'"']+']'+'\n'
print jline2我正在将一个JSON文件转储到Python中,然后将一些值组合起来形成字符串。稍后,我将使用pydot解析该文件。
将json数据转储到python (jline变量)中的字符串后,下面是ouptput:
"{\"Title\":\"The Shawshank Redemption\",\"Year\":\"1994\",\"Rated\":\"R\",\"Actors\":\"Tim Robbins, Morgan Freeman, Bob Gunton, William Sadler\",\"Plot\":像这样有多条线。我希望将标题和前4个Actor值从每一行输出到一个文本文件中,如下所示:
Title ["Actor","Actor","Actor","Actor"]输出为TypeError:字符串索引必须是整数,而不是str。
最后,更新了,我走了一个不同的方向,做了以下工作:
file = open('step3_desired_output.txt','rU')
nfile = codecs.open('step4.txt','w','utf-8')
movie_actors = []
for line in file:
line = line.rstrip()
movie = json.loads(line)
l = []
title = movie['Title']
actors = movie['Actors']
tempactorslist = actors.split(',')
actorslist = []
for actor in tempactorslist:
actor = actor.strip()
actorslist.append(actor)
l.append(title)
l.append(actorslist)
row = l[0] + '\t' + json.dumps(l[1]) + '\n'
nfile.writelines(row)发布于 2014-02-11 22:46:37
将jline = json.dumps(line)更改为jline = json.loads(line)。
编辑:您将具有以下结构:
{'Title': 'The Shawshank Redemption',
'Year': '1994',
'Rated': 'R',
'Actors': 'Tim Robbins, Morgan Freeman, Bob Gunton, William Sadler'}然后你就可以:
jline2 = {jline['Title']: jline['Actors'].split(', ')}因此,jline2将是以下内容:
{'The Shawshank Redemption': ['Tim Robbins',
'Morgan Freeman',
'Bob Gunton',
'William Sadler'] }这种结构很容易被穿越。
https://stackoverflow.com/questions/21714698
复制相似问题