json读入小结

1

回家已经11点后,写一点今天工作中用到的知识,不太熟练,耽误了些时间。因为任务紧急,类似这种对某个知识点不熟练,累计叠加起来,就会导致做事变慢,最终只能靠加班。

这不是加班的唯一原因,还有任务重啊,本来需要两天完成的活,结果压到一天来做,除非是神兽,像我等凡人,即便干着急、脑袋涨,终因能力不及,也只能靠时间来补。

2

csv文件的最后一行是几个 json 格式的单元格,今天下午就是困在这上面,始终解析不到想要的格式。

例如某个单元格 json 串格式化为:

{"status":0, "msg": , result:[{"s1":1, "s2": "ming"}, {"s1": 20, "s2":"xxx"}] },经过简化后的取值。

3

利用pandas, 我想转化如上json串为dataframe对象,使用: pd.read_json(jsonStr, orient="index"), 会报类似长度不一致的异常。

后面,处理原来字符串,只保留 : result:[{"s1":1, "s2": "ming"}, {"s1": 20, "s2":"xxx"}]

,然后再 read_json, 这里面有个关键的属性 orient,它决定读入 json 的解析格式,

  • 'split' : dict like {index -> [index], columns -> [columns], data ->[values]}
  • 'records' : list like [{column -> value}, ... , {column -> value}]
  • 'index' : dict like {index -> {column -> value}}
  • 'columns' : dict like {column -> {index -> value}}
  • 'values' : just the values array

以上可以看出,匹配 orient 为 records ,读入后才能得到如下格式的dataframe:

s1 s2

0 1 ming

1 20 xxx

当时出问题,就主要是没有设置合适的orient属性值(records). 仅此小记,收笔休息。

原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2019-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券