Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 转储JSON文件,然后保存到列表_Python_Json_String_Parsing - Fatal编程技术网

Python 转储JSON文件,然后保存到列表

Python 转储JSON文件,然后保存到列表,python,json,string,parsing,Python,Json,String,Parsing,这是我的代码: 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中

这是我的代码:

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变量)后,这是输出:

"{\"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)

jline=json.dumps(行)
更改为
jline=json.loads(行)

编辑: 您将具有以下结构:

{'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'] }

这个结构将很容易被遍历。

谢谢……我认为现在这是正确的,我在代码
json中就是这样使用它的。dumps
获取一个
Python
对象(list,string.dict)并生成一个json字符串<代码>加载将JSON格式的字符串转换为Python
jline
是一个JSON字符串,而不是Python<代码>行['Title']在Python字典上工作,而不是在字符串上工作。哦,好的,你知道如何将数据从jline提取到我正在寻找的格式吗?问题是我想搜索数据并提取值和键。如果我使用json.loads,那么我无法搜索它并单独拉出参与者,参与者只是变成一个长字符串。谢谢,我成功地做到了:
jline2={jline['Title']+'\t['+jline[''''+'Actor'+']+']“+”\n“
这给了我一组演员的引号,但不是每个演员的引号。我最终做了我在编辑中发布的事情。