Skip to content

xhtml2pdfvsnested-lookup

Apache-2.0 136 19 2,383
3.3 million (month) May 19 2011 0.2.17(2025-02-24 20:44:42 ago)
209 2 - Public Domain
Feb 09 2022 375.4 thousand (month) 0.2.25(2022-07-06 18:55:03 ago)

xhtml2pdf is a Python library that allows you to convert HTML and CSS documents to PDF files. It is built on top of ReportLab, a powerful PDF generation library for Python.

xhtml2pdf makes it easy to convert HTML and CSS documents to PDF by using ReportLab's powerful layout engine to handle the rendering of the document.

The library supports a wide variety of HTML and CSS features, including tables, lists, images, and links. It also supports several popular CSS frameworks such as Bootstrap and Foundation.

To use xhtml2pdf, you first need to install it via pip by running `pip install xhtml2pdf``. Once it is installed, you can use the xhtml2pdf.pisa.pisaDocument() function to convert an HTML file to a PDF.

nested-lookup is a convenient way to parse multi-depth JSON documents which are often encountered in web scraping. Using nested-lookup we can easily extract deeply nested data-field just by providing key value.

The library provides a number of functions for searching and extracting data from nested dictionaries, including:

  • nested_lookup: search for a key within a nested dictionary and returns the associated value.
  • nested_update: update a key-value pair within a nested dictionary.
  • nested_has: check if a key exists within a nested dictionary.
  • nested_values: returns all the values within a nested dictionary, including values within nested dictionaries.

The library is designed to be flexible and can work with dictionaries of any size and structure, making it a useful tool for working with complex and nested data structures.

Example Use


```python from xhtml2pdf import pisa with open('input.html', 'r') as html_file: html = html_file.read() with open('output.pdf', 'wb') as pdf_file: pisa.pisaDocument(html, pdf_file) ```
```python from nested_lookup import nested_lookup my_document = { "name" : "Rocko Ballestrini", "email_address" : "test1@example.com", "other" : { "secondary_email" : "test2@example.com", "EMAIL_RECOVERY" : "test3@example.com", "email_address" : "test4@example.com", }, } # retrieving all keys can be useful in dataset overview from nested_lookup import get_all_keys get_all_keys(my_document) ['name', 'email_address', 'other', 'secondary_email', 'EMAIL_RECOVERY', 'email_address'] # key/value stats can also be useful for data overview: from nested_lookup import get_occurrence_of_key, get_occurrence_of_value, get_occurrences_and_values data = {"products": [{"category": "t-shirt"},{"category": "underwear"},{"category": "t-shirt"}]} get_occurrence_of_key(data, key='category') 3 get_occurrence_of_value(data, value='t-shirt') 2 get_occurrences_and_values([data], "t-shirt") # count t-shirt products { 't-shirt': { 'occurrences': 2, 'values': [{'category': 't-shirt'}, {'category': 't-shirt'}] } } # it can also be used to delete/alter values: from nested_lookup import nested_alter data = {"products": [{"price": 10}, {"price": 14}]} nested_alter(data, "price", lambda price: price * 1.4) {'products': [{'price': 14.0}, {'price': 19.599999999999998}]} nested_delete(data, "price") {'products': [{}, {}]} ```

Alternatives / Similar


Was this page helpful?