相关疑难解决方法(0)

pandas - 将多个JSON记录读入数据帧

我想知道是否有一种以内存有效的方式将多记录JSON文件(每行是JSON dict)读入pandas数据帧.下面是一个带有工作解决方案的2行示例,我需要它可能用于非常大量的记录.示例用法是处理来自Hadoop Pig JSonStorage函数的输出.

import json
import pandas as pd

test='''{"a":1,"b":2}
{"a":3,"b":4}'''
#df=pd.read_json(test,orient='records') doesn't work, expects []

l=[ json.loads(l) for l in test.splitlines()]
df=pd.DataFrame(l)
Run Code Online (Sandbox Code Playgroud)

python json pandas

43
推荐指数
4
解决办法
4万
查看次数

将Json文件读取为Pandas Dataframe错误

我有一个Json文件如下.这是一个dicts列表.

[{"city": "ab", "trips": 4, "date": "2014-01-25", "value": 4.7, "price": 1.1, "request_date": "2014-06-17", "medium": "iPhone", "%price": 15.4, "type": true, "Weekly_pct": 46.2, "avg_dist": 3.67, "avg_price": 5.0}, {"city": "bc", "trips": 0, "date": "2014-01-29", "value": 5.0, "price": 1.0, "request_date": "2014-05-05", "medium": "Android", "%price": 0.0, "type": false, "weekly_pct": 50.0, "avg_dist": 8.26, "avg_price": 5.0}.....]
Run Code Online (Sandbox Code Playgroud)

当我用这个读到这个:

data=pd.read_json('dataset.json')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError:预期的对象或值

我也试过这个:

from ast import literal_eval

with open('dataset.json') as f:
    data = literal_eval(f.read())

df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

ValueError:格式错误的字符串

编辑:

即使Json.loads也行不通.试过这个:

import json
data=json.loads('dataset.json')
Run Code Online (Sandbox Code Playgroud)

ValueError:无法解码JSON对象

Json文件是13.5MB,但它似乎有大量的数据.

python json pandas

17
推荐指数
4
解决办法
3万
查看次数

标签 统计

json ×2

pandas ×2

python ×2