在python中从文件中逐行获取JSON记录

时间:2015-02-17 17:43:15

标签: python json file

我正在使用python中的JSON文件。我在列表中有密钥,每个密钥都检索一个JSON记录,我将其存储在一个文件中。每个JSON记录都包含该密钥。

在一个单独的过程中,我需要读取该JSON文件并检索每条记录,获取密钥并执行其他操作。

问题是我无法以这种方式存储的文件中读取JSON行:

dataFile = open(output_file, "w")
for line in keys_list:
   json_line = fetch_json_str(line)
   data = simplejson.loads(json_line)
   dataFile.write(simplejson.dumps(data, sort_keys = True))

它将所有内容读入一行,返回列表的长度为0,len(json_lines)。

  json_lines = [line.strip() for line in open(tmp_load_file)]
  for line in json_lines
      data = simplejson.loads(simplejson.dumps(line))

我做错了什么?有没有办法在不改变我存储方式的情况下取回JSON行,因为这将要求重新处理我以这种方式存储的所有json文件。

1 个答案:

答案 0 :(得分:1)

编写json字符串时需要添加行分隔符

dataFile.write(simplejson.dumps(data, sort_keys = True) + '\n')

否则,您只需将所有json记录放在一行中,json解析器就无法解决。