【问题标题】:Reading text files with Python使用 Python 读取文本文件
【发布时间】:2020-12-24 16:19:51
【问题描述】:

我有一个包含一百万行的文本文件,格式如下:

{"_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" 的第一个条目。

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

【问题讨论】:

  • 看起来像 JSON 文件,而不是 CSV 文件
  • 花点时间阅读帮助中心的editing help。 Stack Overflow 上的格式化与其他站点上的不同。您的帖子看起来越好,其他人就越容易阅读和理解它。
  • 为什么在不是 CSV 文件上使用CSV?看起来有人将一堆 MongoDB 文档转储到 JSON 文件中,您是否查看过它的来源(您可以连接到数据库)或 Python 有哪些解析它的选项?跨度>

标签: python txt


【解决方案1】:

正如@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= {}

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

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    相关资源
    最近更新 更多