【问题标题】:Creating a JSON out of a .txt file using Python使用 Python 从 .txt 文件中创建 JSON
【发布时间】:2020-06-27 01:43:59
【问题描述】:

这是 txt 文件中数据的样子(制表符分隔):

President, U.S. Vote For 1  0 of 1,599 precincts reporting
Candidate   Party   Votes
Deval Patrick   DEM 0
Bernie Sanders  DEM 0
Joseph R. Biden DEM 0
Michael R. Bloomberg    DEM 0
Elizabeth Warren    DEM 0
Pete Buttigieg  DEM 0
Tom Steyer  DEM 0
Andrew Yang DEM 0
Michael Bennet  DEM 0
John K. Delaney DEM 0
Tulsi Gabbard   DEM 0
Cory Booker DEM 0

这是我要创建的 JSON 的架构:

"races": [ {   
        "name": "President, U.S.",
        "reference_id": "US-President",
        "election_date": "2020-03-17",
        "market": "balt",
        "state_postal": "MD",
        "reporting_units": [
            {
                "name": "US",
                "level": "fed",
                "state_postal": "MD",
                "precincts_reporting": 0,
                "total_precincts": 1599,
                "data_source_update_time": "2020-02-25T19:54:23+0000",
                "candidates": [
                    {
                        "last_name": "Patrick",
                        "middle_name":null,
                        "first_name":"Deval",  
                        "party": "DEM",
                        "vote_count": 0,
                    }, ...
                ]
            }
        ]
    }
 ]

因此,candidates 对象必须存在于每个候选对象中,并且 txt 文件中还包含更多 races。我知道我会为此使用json.dumps,但我真的很想知道如何处理这个文本文件的每一行的语法。

【问题讨论】:

  • 请提供minimal reproducible example 以说明您尝试实现此功能时遇到的具体问题。
  • 首先不要担心 JSON 部分的问题。您的第一个目标是按照您想要的方式创建常规 Python 列表和字典的结构。您可以使用标准库中的csv模块逐行解析文件(只需将分隔符设置为"\t"用于制表符分隔符)。
  • 很难将 JSON 示例中的许多键和列表与示例输入数据进行匹配。可能如果您(真的)简化架构以解决您遇到问题的部分,并确保输入数据的示例可以填充它......并且一些显示您尝试过的代码也可能很好......只是尽量不要让我们过多的信息。
  • 请重新参加介绍导览;关注How to Ask。 Stack Overflow 不是编码或教程资源; “语法困难”不是我们可以为您解决的特定问题,因为您没有发布任何解决此问题的尝试。
  • 到底是什么问题?你有没有尝试过,做过任何研究? Stack Overflow 不是免费的代码编写服务。请参阅:How to Askhelp centermeta.stackoverflow.com/questions/261592/…

标签: python json python-2.7 csv


【解决方案1】:

如果您的源文件是常规的,您可能需要考虑逐行解析文件以将其读入python:

with open(path_to_file, 'r') as f:
    # Loop through each line;
    # Separate logic for parsing 1st line and subsequent lines, 
    # along with any other cases you have to consider

【讨论】:

    猜你喜欢
    • 2021-11-22
    • 1970-01-01
    • 2016-01-06
    • 2019-06-19
    • 2023-03-23
    • 2020-02-16
    • 2021-05-10
    • 2019-09-27
    • 1970-01-01
    相关资源
    最近更新 更多