我有大约 700 MB 的数据,格式如下:
{"hash":"b2f405b1589efd8b013869d1d5e605367643db20844572ea7bf788f8575c38d6","block_timestamp":"2020-05-08 13:21:33 UTC","addresses":["3E17PiWGJqP8945KRZHuPdsFSU59othGEQ"]}
{"hash":"6609073b5979d768933f2ea7d4f1723d07c03a3e08f48adff21b9f1d79cee164","block_timestamp":"2020-05-08 13:39:39 UTC","addresses":["3CfewsC7Xjp2oJSBT2zUQkYSXfzo2nuGha"]}
{"hash":"5c7d95f903ea505d9ab82d1090944780c00e91d343ae66e94610bff1d614f90f","block_timestamp":"2020-04-05 23:19:30 UTC","addresses":["1ztVt2xwNwgzH3W9SJ2nMgPMuZpUg8m5w"]}
{"hash":"7eb120e9b50dbc25f13415b3c899efe2cfaf870a7f49995aa6e3b672a1992e56","block_timestamp":"2020-04-08 05:41:51 UTC","addresses":["1HckjUpRGcrrRAtFaaCAUaGjsPx9oYmLaZ"]}
{"hash":"be202b37aa218461827138ff32e3dfa74945808f3ecb574fb5287e99c8ae6a33","block_timestamp":"2020-04-04 09:53:28 UTC","addresses":["3Jk8HaC8Sjq6Ufig9NkWFoFcfzC5a3CNyL"]}
目前我已将这些数据保存为 JSON 文件格式。我想将其转换为 csv。通过常见的 python 和 BASH 方法执行此操作不会给我正确的结果。(请注意,两行之间没有逗号,它只是一个换行符)
我希望它位于带有标题的 CSV 中:哈希、block_timestamp 和地址。我该怎么做?
最佳答案
最简单的方法是在一行 bash 中做到这一点。例如,如果您的文件名为 tt
, 赶紧跑:
cat tt | sed -e "s/:/,/g" | awk -F"," '{print $2 "," $4 "," $6}'
或者,如果您真的想在 Python 中执行此操作,请逐行读取文件,使用
json.loads
解析每一行,然后以 CSV 格式打印该行(这是 ranka47 在他/她的回答中所做的)。问题 - 大文件的速度要慢得多。
关于python - 奇怪的 JSON 到 CSV 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698729/