Skip to main content

用于解析 ADIS 文件或以 ADIS 格式创建新文件的包。

项目描述

ADIS

用于解析和创建 ADIS(农业数据交换语法)文件的 python 包。

此解析器支持A 类ADIS 格式。

ADIS 标准化文件

Wikipedia artice(不幸的是只有德语版)

安装

pip install adis

例子

解析 ADIS 文件并将其转换为 JSON

# example_adis_to_json.py
from adis import Adis

adis = Adis.parse_from_file("sample.ads")
generated_json = adis.to_json()

print(generated_json)

打印输出:

[
    {
        "990001": {
            "definitions": [
                {
                    "item_number": "00000000",
                    "field_size": 20,
                    "decimal_digits": 0
                },
                {
                    "item_number": "00000001",
                    "field_size": 9,
                    "decimal_digits": 6
                },
                {
                    "item_number": "00000002",
                    "field_size": 10,
                    "decimal_digits": 0
                }
            ],
            "data": [
                {
                    "00000000": "Euler number",
                    "00000001": 2.718281,
                    "00000002": null
                },
                {
                    "00000000": "Pi",
                    "00000001": 3.141592,
                    "00000002": null
                },
                {
                    "00000000": "Gravity on Earth",
                    "00000001": 9.81,
                    "00000002": "ms^(-2)"
                }
            ],
            "status": "H"
        },
        "990002": {
            "definitions": [
                {
                    "item_number": "00000008",
                    "field_size": 10,
                    "decimal_digits": 0
                },
                {
                    "item_number": "00000009",
                    "field_size": 10,
                    "decimal_digits": 0
                }
            ],
            "data": [
                {
                    "00000008": "abc",
                    "00000009": "xyz"
                },
                {
                    "00000008": "def",
                    "00000009": "uvw"
                }
            ],
            "status": "N"
        }
    },
    {
        "990001": {
            "definitions": [
                {
                    "item_number": "00000006",
                    "field_size": 10,
                    "decimal_digits": 0
                },
                {
                    "item_number": "00000007",
                    "field_size": 5,
                    "decimal_digits": 2
                }
            ],
            "data": [
                {
                    "00000006": "1",
                    "00000007": 1.23
                },
                {
                    "00000006": "2"
                }
            ],
            "status": "H"
        }
    }
]

将 JSON 文件转为 ADIS

# example_json_to_adis.py
from adis import Adis

adis = Adis.from_json_file("sample.json")
generated_adis_text = adis.dumps()

print(generated_adis_text)

输出:

DH990001000000002000000000109600000002100
VH990001Euler number          2718281??????????
VH990001Pi                    3141592??????????
VH990001Gravity on Earth      9810000ms^(-2)   
DN9900020000000810000000009100
VN990002abc       xyz       
VN990002def       uvw       
EN
DH9900010000000610000000007052
VH990001         1  123
VH990001         2|||||
ZN

关于 ADIS 格式

每个物理文件可以包含多个逻辑 ADIS 文件,这些文件由 类型的对象表示AdisFile。这些逻辑 ADIS 文件中的每一个都包含一个或多个块,这些块由类型的对象表示AdisBlock。每个块由字段的定义(类型的对象列表AdisFieldDefinition)和一个或多个数据行(列表的列表AdisValue)组成。

文档

本文档仅包含用户打算使用的方法。查看文档字符串以获取有关方法的更多信息。

阿迪斯

静态方法:

  • parse(text): 从 ADIS 格式的文本创建Adis对象
  • parse_from_file(path_to_file)Adis:从 ADIS 文件创建对象
  • from_json(json_text)Adis:从 json 文本创建一个对象
  • from_json_file(path_to_json_file)Adis:从 json 文件创建一个对象

常规方法:

  • __init__(adis_files): 从s列表中创建一个Adis对象AdisFile
  • to_json(strip_string_values=True): 创建一个包含文件、定义和数据的 json 文本
  • dumps(): 创建 ADIS 格式的文本
  • get_files(): 返回AdisFiles的列表

Adis文件

常规方法:

  • __init__(blocks): 从sAdisFile列表中创建一个AdisBlock
  • get_blocks(): 返回AdisBlocks的列表

AdisBlock

常规方法:

  • __init__(entity_number, status, field_definitions, data_rows): 创建一个AdisBlock
  • get_entity_number(): 返回 this 的实体号AdisBlock
  • get_field_definitions():将字段定义作为AdisFieldDefinitions列表返回
  • get_data_rows():将数据行作为列表返回。每个数据行是一个AdisValues列表

Adis 字段定义

常规方法:

  • __init__(item_number, field_size, decimal_digits): 创建一个AdisFieldDefinition
  • get_item_number():返回项目编号
  • get_field_size():返回字段大小
  • get_decimal_digits():返回小数位数

阿迪斯价值

静态标志:

  • strip_string_valuesto_dict():如果设置了这个标志,返回的字符串值将被剥离。

常规方法:

  • __init__(item_number, value): 创建一个AdisValue
  • to_dict():返回一个包含项目编号和值的字典AdisValue

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

adis-1.0.1.tar.gz (14.2 kB 查看哈希)

已上传 source

内置分布

adis-1.0.1-py3-none-any.whl (15.2 kB 查看哈希

已上传 py3