我的学期项目是关于使用Naive bayes进行分类。我决定使用Yelp数据集。当我将json文件转换为csv文件时,我想出了几个问题。如:
json.decoder.JSONDecodeError:期望值:第1行第1列(字符0)
它是因为json.loads()的错误用法。我尝试了一些不同的函数使用来管理这部分程序。不幸的是,它们都没有奏效。我把我的代码放在下面,如果你对如何处理这个问题有任何想法,请你解释一下吧? `
import json
import pandas as pd
from glob import glob
import codecs
global df
global s
global count
def convert(x):
ob = json.loads(x)
for k, v in ob.items():
if isinstance(v, list):
ob[k] = ','.join(v)
elif isinstance(v, dict):
for kk, vv in v.items():
ob['%s_%s' % (k, kk)] = vv
del ob[k]
return ob
s = ""
count = 0
for json_filename in glob('*.json'):
csv_filename = '%s.csv' % json_filename[:-5]
print('Converting %s to %s' % (json_filename, csv_filename))
with open('yelp_dataset_challenge_round9.json','rb') as f: #open in binary mode
for line in f:
for cp in ('cp1252', 'cp850'):
try:
if count is 0:
count = 1
else:
s = str(line.decode('utf-8'))
except UnicodeDecodeError:
pass
df = pd.DataFrame([convert(s)])
df.to_csv(csv_filename, encoding='utf-8', index=False)
`
提前致谢:)