【发布时间】:2021-03-29 00:36:48
【问题描述】:
我正在尝试使用 read_json 打开一堆 JSON 文件,以获取如下数据框
ddf.compute()
id owner pet_id
0 1 "Charlie" "pet_1"
1 2 "Charlie" "pet_2"
3 4 "Buddy" "pet_3"
但我收到以下错误
_meta = pd.DataFrame(
columns=list(["id", "owner", "pet_id"]])
).astype({
"id":int,
"owner":"object",
"pet_id": "object"
})
ddf = dd.read_json(f"mypets/*.json", meta=_meta)
ddf.compute()
*** ValueError: Metadata mismatch found in `from_delayed`.
我的 JSON 文件看起来像
[
{
"id": 1,
"owner": "Charlie",
"pet_id": "pet_1"
},
{
"id": 2,
"owner": "Charlie",
"pet_id": "pet_2"
}
]
据我了解,问题在于我正在传递一个 dicts 列表,因此我正在寻找正确的方法来将其指定为 meta= 参数
警察局:
我也尝试过以下方式
{
"id": [1, 2],
"owner": ["Charlie", "Charlie"],
"pet_id": ["pet_1", "pet_2"]
}
但是 Dask 错误地解释了数据
ddf.compute()
id owner pet_id
0 [1, 2] ["Charlie", "Charlie"] ["pet_1", "pet_2"]
1 [4] ["Buddy"] ["pet_3"]
【问题讨论】:
-
你的
_meta是什么? -
对不起,我忘记了,这是一个空的熊猫数据框,我将它添加到问题的描述中。感谢您的关注!
标签: json python-3.x pandas dask