我有一個由JSON組成的文件,每行一行,並且想通過update_time對文件進行排序。按值排序的json的python排序列表
樣本JSON文件:
{ "page": { "url": "url1", "update_time": "1415387875"}, "other_key": {} }
{ "page": { "url": "url2", "update_time": "1415381963"}, "other_key": {} }
{ "page": { "url": "url3", "update_time": "1415384938"}, "other_key": {} }
想輸出:
{ "page": { "url": "url1", "update_time": "1415387875"}, "other_key": {} }
{ "page": { "url": "url3", "update_time": "1415384938"}, "other_key": {} }
{ "page": { "url": "url2", "update_time": "1415381963"}, "other_key": {} }
我的代碼:
#!/bin/env python
#coding: utf8
import sys
import os
import json
import operator
#load json from file
lines = []
while True:
line = sys.stdin.readline()
if not line: break
line = line.strip()
json_obj = json.loads(line)
lines.append(json_obj)
#sort json
lines = sorted(lines, key=lambda k: k['page']['update_time'], reverse=True)
#output result
for line in lines:
print line
代碼工作正常樣本JSON文件,但如果一個JSON沒有'update_time',它會引發KeyError異常。有沒有例外的方法來做到這一點?
如何將json文件分配到行,以便它必須動態如果我我們100萬行然後它不會正確加載,所以這就是爲什麼 –