pandas用read_json讀取json文件
pandas.read_json語法如下
pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=True,
convert_axes=True, convert_dates=True, keep_default_dates=True,
numpy=False, precise_float=False, date_unit=None, encoding=None,
lines=False, chunksize=None, compression='infer')
其中,orient是用來指定傳入的json字符串類型。
orient的設置值
1.split,用來讀取有索引,由列字段和數據構成的json格式:
{index: [index], columns: [columns], data: [values]}
index作爲索引, columns作爲列名結合data的values組成一個dataframe
s = "{'index': [1, 2, 3], 'columns: ['a', 'b'], 'data':[[1, 3], [2, 8], [3, 9]]}"
pd.read_json(s, orient='split')
2.records,用來讀取成員爲字典的列表:
[{column1: value1, column2: value2}, …, {column1: value1, column2: value2}]
鍵column爲列名,value爲列所對應的值,每一個字典成員就構成了dataframe的一行數據
s = "[{'a': 1, 'b': 3}, {'a': 2, 'b': 6}, {'a': 3, 'b': 9}]"
pd.read_json(s, orient='records')
3.index,用來讀取以索引爲key,以列字段構成的字典爲鍵值的json格式:
將key作爲dataframe的index,字典中的鍵和鍵值構成dataframe的data
{index1: {column1: value1, column2: value2}, index2: {column1: value1, column2: value2}}
s = "{'0': {'a': 1, 'b': 2}, '1': {'a': 9, 'b': 11}}"
pd.read_json(s, orient='index')
4.columns,處理以列爲鍵,對應一個值字典的對象:
{column1:{index1: value1, index2: value1}, column2:{index1: value2, index2: value2}}
將column作爲列名,index作爲索引,value爲列的數據,組成一個dataframe
s = "{'a': {'0': 1, '1': 9}, 'b': {'0': 2, '1': 11}}"
pd.read_json(s, orient='columns'
5.values,處理一個嵌套的列表,裏面的成員也是列表:
[[value1, value2], …, [value1, value2]]
s = "[['a', 1], ['b', 2]]"
pd.read_json(s, orient='values')