使用Python读取文本文件

问题描述

我有一个文本文件,其中包含大约一百万行,其格式如下:

{"_id":"0e1daf84-4e4d-11ea-9f43-ba9b7f2413e0","parameterId":"visib_mean_last10min","stationId":"06193","timeCreated":1581590344449633,"timeObserved":1577922600000000,"value":11100}

文件没有标题。我希望能够将其作为数组进行观察。

我已经尝试过了:

df = pd.read_csv("2020-01_2.txt",delimiter = ",",header = None,names = ["_id","parameterId","stationId","timeCreated","timeObserved","value"])

这确实将文件按我想要的方式分为列和行,它将"_id":"0e1daf84-4e4d-11ea-9f43-ba9b7f2413e0"绘制为我只希望"0e1daf84-4e4d-11ea-9f43-ba9b7f2413e0"的第一个条目。

如何仅将每个“:”之后的值绘制到数组中?

解决方法

正如@mousetail所说,它看起来像某种json文件。您可能需要执行以下操作:

import json
mylist = []
with open("2020-01_2.txt") as f:
          for line_no,line in enumerate(f):
              mylist.append([])
              mydict = json.loads(line)
              for k in mydict:
                  mylist[line_no].append(mydict[k])
              mydict= {}

它将输出一个列表列表,每个列表对应一个文件行。 祝你好运!