Yelp点评网站官方数据集json转csv格式方法【最新】【超详细】

Yelp是美国一个类似大众点评网站,其官网发布的数据集包括商家、用户、评论、打卡等信息,详实丰富。数据集可以用来研究推荐系统!

但是,Yelp官网提供下载的数据是json格式,官方发布的Python解析文件居然还是五年前用python2写的,运行半天报了无数错,要一点点改!把10G文件下载好半天后也用不上!!网上查了半天也没有什么好方法,我气不打一处来。这里给出最新用python3解析成csv格式的代码,造福后人。

此处参考了吱吱_的代码,但那篇文章只对Busness的数据进行了解析,我下面给出的解析文件可以对全部文件进行解析。

(1)新建python文件,命名为json_to_csv_business.py,内容见下:

import csv
import json
import sys
import os
import pandas as pd
import numpy as np

#我这里.py文件和数据放在同一个路径下了,如果不在同一个路径下,自己可以修改,注意路径要用//

json_file_path='yelp_academic_dataset_review.json'
csv_file_path='yelp_academic_dataset_review.csv'

#打开business.json文件,取出第一行列名
with open(json_file_path,'r',encoding='utf-8') as fin:
    for line in fin:
        line_contents = json.loads(line)
        headers=line_contents.keys()
        break
    print(headers)
    
#将json读成字典,其键值写入business.csv的列名,再将json文件中的values逐行写入business.csv文件
with open(csv_file_path, 'w', newline='',encoding='utf-8') as fout:
    writer=csv.DictWriter(fout, headers)
    writer.writeheader()
    with open(json_file_path, 'r', encoding='utf-8') as fin:
        for line in fin:
            line_contents = json.loads(line)
            #if 'Phoenix' in line_contents.values():
            writer.writerow(line_contents)
            
 # 删除state','postal_code','is_open','attributes'列,并保存
 # 可以根据需要选择,这里是针对review文件的一些列。
df_bus=pd.read_csv(csv_file_path)
df_reduced=df_bus.drop(['compliment_hot','compliment_more','compliment_profile'],axis=1)
df_cleaned=df_reduced.dropna()
df_cleaned.to_csv(csv_file_path,index=False)
df_bus=pd.read_csv(csv_file_path)

df_bus.to_csv(csv_file_path,index=False)

上面的代码给出的是review文件的解析方法。如果要解析business/user文件的话,把json_file_path、csv_file_path改了即可。

(2)进入python命令行,我这里用的是anaconda,所以打开anaconda powershell promt。

输入cd 路径名 进入刚刚写的Python文件所在的路径下。
然后在命令行下直接输入:

json_to_csv_business.py

就可以在文件夹里看到解析好的csv文件了!!!!

这里上传解析好的user tip(简评)和chekin(打卡)数据吧,review文件太大了上传不了。

链接: https://pan.baidu.com/s/1HreQ1JaMdavS70nkUWo3NA 提取码: 23d8
复制这段内容后打开百度网盘手机App,操作更方便哦

注意如果是用excel打开的话,可能看到有的数据显示不正常。要看看excle打开时的编码,是csv(逗号隔开)还是 csv(utf-8,逗号隔开),这里正确的打开编码方式是后者。直接用python打开就看到解析是很正常的!如果python文件和数据在同一目录下:

import pandas as pd
review = pd.read_csv('yelp_academic_dataset_review.csv')
review.head()

成功了呜呜呜 弄了好久啊!!!

你可能感兴趣的:(学习记录,python,推荐系统,csv,json)