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). 仅此小记,收笔休息。