【问题标题】:How do I create a class from a text file in python?如何从 python 中的文本文件创建一个类?
【发布时间】:2019-06-30 06:16:05
【问题描述】:

我将如何从包含以下数据的 Text_file.txt 创建一个类。所以 A-I 是我的对象。

Text_file.txt 格式:

[{'A': 443582874, 'B': '015490199481', 'C': 98874007784, 'D': 'Banana', 'E': 'buy', 'F': '0.2000', 'G': '0.031076', 'H': '-0.000000621520', 'I': '2019-02-01T11:19:22.740Z'}, {'A': 443484705, 'B': '015490131470', 'C': 98848326070, 'D': 'Apple', 'E': 'sell', 'F': '0.2000', 'G': '0.030879', 'H': '-0.000000617580', 'I': '2019-02-01T09:35:09.198Z'}]

所以当:

print(class['D0']):

返回:

Banana

print(class['D0':'D1'])

返回:

Banana
Apples

【问题讨论】:

  • [D0]...?!你的意思是['D0']...?
  • 我想应该是[0]['D']
  • 它可以帮助你print(data[0].get('D))print([x.get('D') for x in data[0:2]])
  • 到目前为止你做了什么?我认为索引和切片等魔术方法在这里可以提供帮助,但不清楚您为什么要创建这样的解决方案。
  • 好吧,您可以创建一个类,通过访问其'D0' 属性,从上述数组中返回[0]['D']……

标签: python class dictionary


【解决方案1】:

class 是 Python 的保留字,有特殊含义,我想这不是你的意思。

您似乎拥有的是一个 JSON 字符串,可以将其作为 2 元素字典列表导入 Python。除了它使用单引号而不是双引号。于是将文件读入string,然后

import json

string = string.replace( "'", '"')
j = json.loads( string)

您现在可以参考j[0]['D'][ x['D'] for x in j ](后者是列表['Banana', 'Apple']

【讨论】:

    【解决方案2】:

    这并不是真正的事情,但有办法做到这一点。

    如果文件不是text_file.txt 而是text_file.py 并且内容是这样的:

    var = [{'A': 443582874, 'B': '015490199481', 'C': 98874007784, 'D': 'Banana', 'E': 'buy', 'F': '0.2000', 'G': '0.031076', 'H': '-0.000000621520', 'I': '2019-02-01T11:19:22.740Z'}, {'A': 443484705, 'B': '015490131470', 'C': 98848326070, 'D': 'Apple', 'E': 'sell', 'F': '0.2000', 'G': '0.030879', 'H': '-0.000000617580', 'I': '2019-02-01T09:35:09.198Z'}]
    

    然后在你的脚本中

    from text_file import var
    
    print(var[0]['D'])
    

    那会给你'Banana'

    您需要 text_file.py 与您的 python 脚本位于同一文件夹(或至少在您的路径中的某个位置),以便可以导入它。

    我有时会为配置执行此操作。您还误用了名称 class,这不是这个名称。


    编辑:

    这样做:

    print(class['D0':'D1'])
    

    可能是可能的,但我认为这根本不是你想要的——要做到这一点,你基本上会为不同的数据结构重建自己的索引语义——为什么不直接学习 python 已经拥有的那个?

    类似这样的:

    print([i['D'] for i in var[0:1]])
    

    会给你你想要的

    【讨论】:

      猜你喜欢
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      相关资源
      最近更新 更多