通过python逐行读取yelp数据集

Posted

技术标签:

【中文标题】通过python逐行读取yelp数据集【英文标题】:read from line to line yelp dataset by python 【发布时间】:2018-06-23 09:23:34 【问题描述】:

我想将此代码更改为专门从第1400001行读取到第1450000行。什么是修改? 文件由单一对象类型组成,每行一个 JSON 对象。 我还想将输出保存到 .csv 文件。我该怎么办?

revu=[]
with open("review.json", 'r',encoding="utf8") as f:
      for line in f:
       revu = json.loads(line[1400001:1450000)

【问题讨论】:

revu=[] with open("review.json", 'r',encoding="utf8") as f: for line in f: revu = json.loads(line[1400001:1450000 ) 那是每行的 JSON 还是整个文件的 JSON? 文件由单一对象类型组成,每行一个 JSON 对象。 【参考方案1】:

如果是每行JSON:

revu=[]
with open("review.json", 'r',encoding="utf8") as f:
    # expensive statement, depending on your filesize this might
    # let you run out of memory
    revu = [json.loads(s) for s in f.readlines()[1400001:1450000]]

如果您在 /etc/passwd 文件上执行此操作,则很容易测试(当然没有 json,所以省略了)

revu = []
with open("/etc/passwd", 'r') as f:
    # expensive statement
    revu = [s for s in f.readlines()[5:10]]

print(revu)  # gives entry 5 to 10

或者您遍历所有行,从而避免内存问题:

revu = []
with open("...", 'r') as f:
    for i, line in enumerate(f):
        if i >= 1400001 and i <= 1450000:
            revu.append(json.loads(line))

# process revu   

转为 CSV ...

import pandas as pd
import json

def mylines(filename, _from, _to):
    with open(filename, encoding="utf8") as f:
        for i, line in enumerate(f):
            if i >= _from and i <= _to:
                yield json.loads(line)

df = pd.DataFrame([r for r in mylines("review.json", 1400001, 1450000)])
df.to_csv("/tmp/whatever.csv")

【讨论】:

非常感谢。通过可忽略的修改对我有用:revu = [] with open("review.json", 'r',encoding="utf8") as f: for i, line in enumerate(f): if i >= 1400001 and i 我想将输出保存为 .csv 文件。我该怎么办? 谢谢...你就是那个人!***.com/users/2413548/hootnot 最近遇到这个错误:name 'json' is not defined!!尽管安装了 ijson 思想命令行,这在过去很好用!!现在发生了什么??? 添加导入:import json,应该可以完成这项工作。您可以通过安装 cjson 来使用它:pip install python-cjson 并导入它:import cjson as json 并通过替换 loads(...) 通过 decode(...)。对于 ijson 我目前没有答案

以上是关于通过python逐行读取yelp数据集的主要内容,如果未能解决你的问题,请参考以下文章

无法打开/查看 Yelp 数据集

python数据集

加载图像数据集

Python读取MNIST数据集

Python 制作Pascal VOC数据集

python 读取测试数据和结果集