python解析json多行_用Python处理非常难看的多行Json对象

所以-

解析这并不是那么困难,尽管,根据您的示例,比您描述的要容易一些。在

如果“每一行都是一个JSON对象”——您只需将每一行输入JSON解析器,并将生成的对象收集到一个列表中:import json

for filename in os.listitdir():

data = []

with open(filename) as jsonfile:

for line in jsonfile:

if not line.strip(): continue #avoid crash at empty lines and newline at end of file data.append(json.loads(line.strip()))

# do your CSV output processing here.

但是,在上面的示例中,每一行都不是一个完整的json文件—更像是整个文件都是有效的json对象,这是一种规范,因此jsut执行以下操作:

^{pr2}$

应该为你做这项工作。在

现在,这是解析-如果你的问题只是关于这个,这些应该足够作为一个答案。我想,在每个CSV结果文件中获取数据的含义并选择要输出的字段和标题将是一个更大的问题——但是它们,也许你可以一直工作到解析工作完成,然后用更具体的例子来提出更多的问题

请注意,对于处理数千个文件,最好使用Python的迭代器“pattern”,这样就可以将上述解析逻辑与处理数据和创建输出的部分分开,并且每次在内存中解析一个JSON文件:import json

def get_json_data(path_to_files):

for filename in os.listitdir(path_to_files):

data = json.load(open(filename))

yield data

def main():

for data in get_json_data():

# implement CSV logic here.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值