将json文件转换为csv编码/解码问题

时间:2017-05-11 09:26:41

标签: json python-3.x csv yelp

我的学期项目是关于使用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)

`

提前致谢:)

0 个答案:

没有答案