为什么 pandas.json_normalize(json_results) 会引发 NotImplementedError?

5

我有一个名为json_results的JSON变量,并且我正在运行pandas.json_normalize(json_results)。它会抛出以下错误:

in _json_normalize
    raise NotImplementedError
NotImplementedError

我该如何解决这个问题?

请修改您的问题并提供一个最小可复现示例(MCVE)。 - Robert
3个回答

7

如果您将JSON字符串传递给json_normalize,而不是已经解码的JSON对象,则可能会出现此错误。

>>> import json
>>> import pandas as pd

>>> s = '{"hello": "world"}'
>>> pd.json_normalize(s)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".../lib/python3.7/site-packages/pandas/io/json/_normalize.py", line 423, in _json_normalize
    raise NotImplementedError
NotImplementedError

>>> d = json.loads(s)
>>> pd.json_normalize(d)
   hello
0  world

如果是这种情况,请先使用json.loads(或等效的Pandas函数)。

1
尝试使用from_records方法,例如:
import json
import pandas as pd

s = '{"Column 1":{"Row 1":"Value 1","Row 2":"Value 2","Row 3":"Value 3"},' \
    '"Column 2":{"Row 1":"Value 4","Row 2":"Value 5","Row 3":"Value 6"}}'
result = pd.DataFrame.from_records(json.loads(s))
print(result)

输出:

      Column 1 Column 2
Row 1  Value 1  Value 4
Row 2  Value 2  Value 5
Row 3  Value 3  Value 6

info()方法输出:

<class 'pandas.core.frame.DataFrame'>
Index: 3 entries, Row 1 to Row 3
Data columns (total 2 columns):
 #   Column    Non-Null Count  Dtype 
---  ------    --------------  ----- 
 0   Column 1  3 non-null      object
 1   Column 2  3 non-null      object
dtypes: object(2)

0
您是这样导入json_normalize的吗:

from pandas.io.json import json_normalize

如果是这样,请导入pandas,然后尝试像这样调用json_normalize:
pd.json_normalize()

改为:

json_normalize()

这是解决我的问题的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接