有不同类型的 json 输入需要转换。
输入:
示例#1:
{ "table_name": [{ "id": 1, "name": "john" },{ "id": 2, "name": "doe" }] }
示例#2:
{
"id": [
"1",
"2"
],
"name": [
"john",
"doe"
]
}
两个对象所需的 JSON 输出:
[{ "id": 1, "name": "john" },{ "id": 2, "name": "doe" }]
在 R 代码中,这是使用
data <- tidyr::unnest(data)
完成的。我在 pyhton 中有不同的方式,比如 pd.DataFrame.from_dict(json_data, orient = "index").transpose()
和其他一些变体,但没有运气。
from_dict
需要一个 Python dict
对象。如果您想使用它,您需要首先将 JSON 转换为 dict
。但是我们可以完全跳过它并使用 pandas 内置方法直接加载 JSON:
>>> import pandas as pd
>>> from io import StringIO
>>> json_data = StringIO('[{ "id": 1, "name": "john" },{ "id": 2, "name": "doe" }]')
>>> pd.read_json(json_data)
id name
0 1 john
1 2 doe
出于某种原因,直接加载 JSON 文字字符串已被弃用,需要将其包装在
StringIO
对象中,如上所示。