有时我们获取到了数据的Json格式,但现在需要将其转换为csv格式,该怎么快速取出我们想要的内容呢?
import json, csv, sys
import pandas as pd
from pprint import pprint
import codecs
def print_col_to_csv(d):
#去掉csv中空行
f = open('ym.csv', 'w', newline='')
csv_file = csv.writer(f)
for obj_big in d: # read the big list [{},{}]
for obj in obj_big: # read small list (each row)
strlist=[str(obj['Key'])] #获取key的值并转换成str类型
strlist.extend([str(obj['Value'])]) #获取key的值并转换成str类型,然后追加到strlist中
print(strlist)
#将获取到的strlist写入到csv中
csv_file.writerow(strlist)
with open('zhengzhuang.txt', encoding='utf-8-sig') as f:
data = json.load(f)
print(data)
#打开Json的txt文件后,执行print_col_to_csv方法
print_col_to_csv(data)
以上代码在编写过程中一直遇到这样的错误:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xbf in position 2: illegal multibyte sequence。百度和Google了各种方法都没有解决,最后的解决办法是在打开文件的时候加上编码方式:encoding=’utf-8-sig’。这种方式百度很久都没找到,唉,反正耗费了我很久的时间。不过没关系,以后快速获取json数据就全靠这个代码了。
with open('zhengzhuang.txt', encoding='utf-8-sig') as f: