Sol*_*oli 3 python json pandas
我有一个JSON文件,格式如下:
{
"total_rows":10000,
"offset":0,
"rows":[
{
"id":"005584833b8e2063f04ff713",
"key":"00558433b8e2063f04ff713",
"value":{
"rev":"1-8137baa51a2f335b0215ba9d08"
},
"doc":{
"_id":"0055842eb0063f04ff713",
"_rev":"1-8137baa51a2f335b0215ba9d08",
"value":1,
"date":"2017-04-07T12:38:06.336Z",
"date_inmilli":1491568686336,
"sensorType":"sensor",
"date":"2017-04-07T12:38:06.458Z"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试提取Python 的值"sensorType"或"value"使用Python.使用下面的R代码,我能够正确地得到结果:
library(jsonlite)
df <- fromJSON("file.json")
df$rows$doc$sensorType
Run Code Online (Sandbox Code Playgroud)
但是,使用Python时pandas,当我尝试使用以下代码提取值时出现错误:
import pandas as pd
df = pd.read_json("file.json")
df['rows']['doc']['sensorType']
Run Code Online (Sandbox Code Playgroud)
我正在尝试学习Python,你能帮忙解决这个问题吗?提前致谢.
rows 是一个对象列表试试这个:
df['rows'][0]['doc']['sensorType']
Run Code Online (Sandbox Code Playgroud)
或者如果rows列表中有许多对象,则需要使用for loop statment
for row in df['rows']:
print(row['doc']['sensorType'])
Run Code Online (Sandbox Code Playgroud)
更新 要将这些值放到数据框中,更多的pythonic方式是这样的
df1 = pd.DataFrame([row['doc']['sensorType'] for row in df['rows']])
print(df1)
Run Code Online (Sandbox Code Playgroud)