我有一个jsonline文件如下:
{"id":0,"country":"fr"}
{"id":1,"country":"en"}
{"id":2,"country":"fr"}
{"id":3,"country":"fr"}
我有一个代码列表,我想通过更新文件行为每个用户指定一个代码。你知道吗
结果如下:
{"id":0,"country":"fr", code:1}
{"id":1,"country":"en", code:2}
{"id":2,"country":"fr", code:3}
{"id":3,"country":"fr", code:4}
我现在就是这样做的:
import ujson
fh, abs_path = mkstemp()
with open(fh, 'w') as tmp_file:
with open(shooting.segment_filename) as segment_filename:
for line in segment_filename:
enriched_line = ujson.loads(line)
code = compute_code()
if code:
enriched_line["code"] = code
tmp_file.write(ujson.dumps(enriched_line) + '\n')
我的问题是,有没有更快的方法?例如,可能是通过sarge启动的linux命令?或者任何不必读/写/替换原始文件的pythonic方法?你知道吗
谢谢你!你知道吗
我不知道这是否能让你满意,但这里有一些“更干净”的代码:
为了提高性能,您可以完全跳过json序列化/反序列化步骤,只需将右括号替换为代码+右括号。你知道吗
所以这应该表现得更好:
编辑: 如果不想将整个文件加载到内存中,可以这样做。你知道吗
相关问题 更多 >
编程相关推荐