Skip to main content

some utils to process data easy

Project description

data_factory

数据处理模块,主要是一些处理字典的函数

search

搜索字典中的键值对,如果有多个相同的键,值会被放到一个列表。

参数及其类型

  • key : str, list, tuple

  • data : dict

用法:

data = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'name':'find',
        'intro':'find something'
    }
}

print(search('name', data))
# output: ['search', 'find']

print(search(['name','intro'], data))
# output: {'name': ['search', 'find'], 'intro': ['search key/value in dict data', 'find something']}
update

更新字典中的键值对。

参数及其类型

  • update_map : dict
  • data : dict
  • target_type : str, tuple

用法:

data = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'name':'find',
        'intro':'find something'
    }
}

print(update({'name': 'PYTHON'}, data=data))
# output: {'name': 'PYTHON', 'intro': 'search key/value in dict data', 'desc': {'name': 'PYTHON', 'intro': 'find something'}}

print(update({'name': 'PYTHON'}, data=data, target_type=int))
# output: {'name': 'search', 'intro': 'search key/value in dict data', 'desc': {'name': 'find', 'intro': 'find something'}}

target_type 字段标明更新字段的类型,默认更新类型:str, bytes, int, float, list, dict,如果字典的值的类型不在更新类型范围内,则不更新值。

replace

替换字典中的键值对。

参数及其类型

  • replace_map : dict
  • data : dict
  • replace_key : bool

用法:

data = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'name':'find',
        'intro':'find something'
    }
}

print(replace({'find': 'search'}, data=data))
# output: {'name': 'search', 'intro': 'search key/value in dict data', 'desc': {'name': 'search', 'intro': 'search something'}}

print(replace({'name': 'Name'}, data=data, replace_key=True))
# output: {'Name': 'search', 'intro': 'search key/value in dict data', 'desc': {'Name': 'find', 'intro': 'find something'}}
strip

清洗字典

参数及其类型

  • *args : str
  • data : dict
  • strip_key : bool

用法:

data = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'name':'find',
        'intro':'find something'
    }
}

print(strip('key/', 'find', data=data))
# output: {'name': 'search', 'intro': 'search value in dict data', 'desc': {'name': '', 'intro': ' something'}}

print(strip('ame', data=data, strip_key=True))
# output: {'n': 'search', 'intro': 'search key/value in dict data', 'desc': {'n': 'find', 'intro': 'find something'}}
delete

删除键值对

参数及其类型

  • *args : str
  • data : dict
  • target_type : str, tuple

用法:

data = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'name':'find',
        'intro':'find something'
    }
}

print(delete('desc', data=data))
# output: {'name': 'search', 'intro': 'search key/value in dict data'}

默认target_key 类型为 str, bytes, int, float, list, dict

flatten

展开字典

参数及其类型

  • data : dict

用法:

data = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'Name':'find',
        'Intro':'find something'
    }
}
print(dict(flatten(data)))
# output: {'name': 'search', 'intro': 'search key/value in dict data', 'Name': 'find', 'Intro': 'find something'}
merge

合并字典

参数及其类型

  • *args : dict
  • overwrite : bool

用法:

data1 = {
    'name':'search',
    'intro':'search key/value in dict data',
    'desc':{
        'Name':'find',
        'Intro':'find something'
    }
}

data2 = {
    'name':'find',
    'intro':'searching',
    'desc':{
        'Name':'search',
        'Intro':'find something'
    }
}

print(merge(data1, data2))
# output: {'name': ['search', 'find'], 'intro': ['search key/value in dict data', 'searching'], 'desc': {'Name': ['find', 'search'], 'Intro': ['find something', 'find something']}}

print(merge(data1, data2, overwrite=True))
# output: {'name': ['search', 'find'], 'intro': ['search key/value in dict data', 'searching'], 'desc': {'Name': ['find', 'search'], 'Intro': ['find something']}}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Dtautils-0.8.16.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Dtautils-0.8.16-py2.py3-none-any.whl (12.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file Dtautils-0.8.16.tar.gz.

File metadata

  • Download URL: Dtautils-0.8.16.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.6

File hashes

Hashes for Dtautils-0.8.16.tar.gz
Algorithm Hash digest
SHA256 39b87d2cb54d3c15220e8f4a161d10569654788c04de556b12aa44454d28ae27
MD5 3d36fae94c88f804b477509bd8efeaf1
BLAKE2b-256 4e49a5506f2a1b06976ee8f09f74a2b1f630cde443f8c6bbb406fa30d6bbc659

See more details on using hashes here.

File details

Details for the file Dtautils-0.8.16-py2.py3-none-any.whl.

File metadata

  • Download URL: Dtautils-0.8.16-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.6

File hashes

Hashes for Dtautils-0.8.16-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 956775123ba9bfe1e61277331c45994c4d00b56d561e0fc1318143ca50368a75
MD5 f4cdc7037be82c6446621eec5db14dd6
BLAKE2b-256 8fc9d03567e145a3826c83201336c76091c720aa8b48f964f98d4df622ecf59f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page