我有以下从外部网络服务获得的 json :
text="""
[{
"id":"1",
"name" : "abc",
"address":{
"flat":"123",
"city":"paris",
"street":null
},
"error":null
}]
现在我想从这个 json 创建数据框。当我尝试下面时:
from pandas.io.json import json_normalize
import json
import pandas as pd
resp_json = json.loads(text)
response = json_normalize(resp_json)
但这给了我以下错误:
Error at response = json_normalize(resp_json)
KeyError : 'street'
我相信这是因为街道属性的值为空,这就是它抛出此错误的原因。如何解决这个问题?
如果我确实喜欢下面的内容,我可以解决,但理想情况下这不是正确的解决方案
text = text.replace('"street":null','"street":""')
NOTE:- 当我使用 python 版本 3.6.3 :: Anaconda Inc. 和 pandas 版本 0.20.3 时,我没有看到这个问题,并且 json_normalize 能够正常工作。这是我的本地机器设置。
在生产机器上,我们有 - Python - 3.5.1 和 pandas 0.23.0。在那里我们遇到了上述问题。