首页 > 解决方案 > pandas 无法将以下 txt 文件解析为 pandas 数据框,只有一列

问题描述

我有这样的txt文件格式:

[{
  "lng": "111.68389897298637",
  "odometer": 0,
  "busSpeed": "0.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "8eba1ae2fd014eaf948b",
  "cursorOverGround": "0",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468898000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.86856137377131",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}, {
  "lng": "111.68364330061954",
  "odometer": 0,
  "busSpeed": "11.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "ff42c6cca2e14583b84f",
  "cursorOverGround": "280",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468919000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.868510932496115",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}]

当我想将它导入数据框时,我只得到一列:

柱子

但是当我选择一些列表时,txt我可以得到正确的答案:

在此处输入图像描述

谁能告诉我如何正确处理该txt文件?任何帮助表示赞赏!谢谢。

标签: pythonpandascsvdataframe

解决方案


你需要pandas.read_json. 下面的完整示例。

设置

import pandas as pd
from io import StringIO

mystr = StringIO("""[{
  "lng": "111.68389897298637",
  "odometer": 0,
  "busSpeed": "0.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "8eba1ae2fd014eaf948b",
  "cursorOverGround": "0",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468898000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.86856137377131",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}, {
  "lng": "111.68364330061954",
  "odometer": 0,
  "busSpeed": "11.00",
  "relativeLocation": 0,
  "realTimeStatus": "0",
  "driverUuid": "28b3ea130a6ad049a10b041037e2550d80f5",
  "posUuid": "ff42c6cca2e14583b84f",
  "cursorOverGround": "280",
  "posIsInStation": "",
  "sationName": "",
  "distanceToPrePosition": 0,
  "lineUuid": "c2e0313000fba04c940a4be0f9edb9c521c8",
  "drvIcCard": "3168310624",
  "lineType": "0",
  "isOffset": "1",
  "driverName": "贾爱俊",
  "gatherTime": 1506468919000,
  "allAlarms": "7",
  "busUuid": "9d9648ff0375a04702080cc03a4c20377ea8",
  "lat": "40.868510932496115",
  "devUuid": "3d16fedb858842199cb3",
  "sationUuid": ""
}]""")

解决方案

# replace mystr with 'file.txt'
df = pd.read_json(mystr)

结果

print(df)

  allAlarms busSpeed                               busUuid cursorOverGround  \
0         7     0.00  9d9648ff0375a04702080cc03a4c20377ea8                0   
1         7    11.00  9d9648ff0375a04702080cc03a4c20377ea8              280   

                devUuid  distanceToPrePosition driverName  \
0  3d16fedb858842199cb3                      0        贾爱俊   
1  3d16fedb858842199cb3                      0        贾爱俊   

                             driverUuid   drvIcCard     gatherTime  \
0  28b3ea130a6ad049a10b041037e2550d80f5  3168310624  1506468898000   
1  28b3ea130a6ad049a10b041037e2550d80f5  3168310624  1506468919000   

      ...     lineType                              lineUuid  \
0     ...            0  c2e0313000fba04c940a4be0f9edb9c521c8   
1     ...            0  c2e0313000fba04c940a4be0f9edb9c521c8   

                  lng odometer posIsInStation               posUuid  \
0  111.68389897298637        0                 8eba1ae2fd014eaf948b   
1  111.68364330061954        0                 ff42c6cca2e14583b84f   

  realTimeStatus relativeLocation sationName  sationUuid  
0              0                0                         
1              0                0                         

推荐阅读