Python slurpers package for simple XML, JSON, config, etc. processing
Project description
Python slurpers for XML, JSON, configs (or .ini) and so on
Inspired by Groovy's XmlSlurper
Slurper is a object that encapsulates access to structured document file using its dynamic fields as file tags.
JSON example:
Json document:
{
"name": "Joan",
"surname": "Baez",
"born": 1941,
"albums": [
{
"name": "Folksingers 'Round Harvard Square",
"year": 1959,
"number-of-tracks": 18
},
{
"name": "Joan Baez",
"year": 1960,
"number-of-tracks": 16
},
{
"name": "Joan Baez, Vol. 2",
"year": 1961,
"number-of-tracks": 17
},
{
"name": "Joan Baez/5",
"year": 1964,
"number-of-tracks": 14
},
{
"name": "Farewell, Angelina",
"year": 1965,
"number-of-tracks": 14
}
]
}
code:
json = JsonSlurper.create(file_name = "testdata/baez.json", illegal_chars = Constants.STRIP_CAPITALIZE)
self.assertEqual("Joan", json.name)
self.assertEqual("Baez", json.surname)
self.assertEqual(1941, json.born)
self.assertEqual(5, len(json.albums))
self.assertEqual("Farewell, Angelina", json.albums[4].name)
self.assertEqual(14, json.albums[4].numberOfTracks)
Config example:
Sample config file:
[Database]
host: mysql.google.com
database: search_index
[Security]
auth provider: google
# and so on...
code:
config = ConfigSlurper.create(file_name = "testdata/google.config", illegal_chars = Constants.REPLACE_WITH_UNDERSCORES)
self.assertEqual("mysql.google.com", config.Database.host)
self.assertEqual("google", config.Security.auth_provider)
XML example:
Xml document (see in testdata/test1.xml):
<?xml version="1.0" encoding="utf-8"?>
<beatles>
<man>
<name>John</name>
<name>Winston</name>
<surname>Lennon</surname>
<born>
<place>Liverpool</place>
<year>1940</year>
</born>
</man>
<man>
<name>James</name>
<name>Paul</name>
<surname>McCartney</surname>
<born>
<place>Liverpool</place>
<year>1942</year>
</born>
</man>
<man>
<name>Ringo</name>
<surname>Starr</surname>
<born>
<place>Liverpool</place>
<year>1940</year>
</born>
</man>
<man>
<name>George</name>
<surname>Harrison</surname>
<born>
<place>Liverpool</place>
<year>1943</year>
</born>
</man>
</beatles>
Python code:
xml = XmlSlurper.create('testdata/test1.xml')
for man in xml.man:
print('{} {} born at {} in {}'.format(' '.join(man.name), man.surname, man.born.year, man.born.place))
Output:
John Winston Lennon born at 1940 in Liverpool
James Paul McCartney born at 1942 in Liverpool
R i n g o Starr born at 1940 in Liverpool
G e o r g e Harrison born at 1943 in Liverpool
Starr and Harrison don't have second name, so man.name for them is a single string, so ' '.join() concatenates each char in it.
Lennon and McCartney are doublenamed, so man.name for them is list.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyslurpers-0.1.0.tar.gz.
File metadata
- Download URL: pyslurpers-0.1.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.21.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
331cf01f540b03c08dd5084b4f95401cf0db642ccf7e8131dcf5d36cb6e7a264
|
|
| MD5 |
4c29ea64983290a6db5dacc2f6cabd34
|
|
| BLAKE2b-256 |
98691b3433a4f266429b689d8122288a7ea7b033036f572ca02b4ad2d8d5412e
|
File details
Details for the file pyslurpers-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyslurpers-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.21.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f436d5603becf80c794d122e8051cedc5423cd3fff26c75485a4f51da1217012
|
|
| MD5 |
b3824a90c6d01d805fa8c833e0207ca0
|
|
| BLAKE2b-256 |
d49ac02a68b00b47d425ddba1e3d663ad1ddf75856b8b4a2373d805b97516a1c
|