首页 > 解决方案 > json数组到熊猫数据框并将其写入csv

问题描述

我有一个如下所示的 json 数组,我想转换为 pandas 数据帧并最终将其写入 csv。

我从列表中有一个数字列作为 l[0],我想将它添加到 df 并将所有内容写入 csv。

[{'value': ' 5644427289 ', 'page_num': '0', 'score': '0.9', 'coord': '["(Decimal(\'90.000\')", " Decimal(\'257.163\')", " Decimal(\'362.250\')", " Decimal(\'307.683\'))"]', 'height': '50.51999999999998', 'width': '272.25'}]

我只想将 value、page_num 和 score 写入我的 df,而且我还有一个 l[0] 到我的 df,最后将其写入 csv。

对于范围内的 s(len(json_obj)):

    op_json='{"value":"' + str(json_obj[s]["value"]) + '","page_num":"' + str(json_obj[s]["page_num"]) + '", "score":"' + str(json_obj[s]["score"]) + '"}'
            print(op_json)
            df =pd.DataFrame(None)
            df = json_normalize(op_json)
            if os.path.exists(r'/data/results/0101/a.csv'):
                df.to_csv(r'/data/results/0101/a.csv',mode='a', index=False, header=False)
            else:
                df.to_csv(r'/data/results/0101/a.csv', mode='a', index=False, header=True)

标签: pythonpandas

解决方案


l = [{'value': ' 5644427289 ', 'page_num': '0', 'score': '0.9', 'coord': '["(Decimal(\'90.000\')", " Decimal(\'257.163\')", " Decimal(\'362.250\')", " Decimal(\'307.683\'))"]', 'height': '50.51999999999998', 'width': '272.25'}]

pd.DataFrame(l)[['value', 'page_num', 'score']].to_csv('file.csv',index=False)
          value page_num score
0   5644427289         0   0.9

推荐阅读