Ejemplo n.º 1
0
    def to_json(self,
                filename: str = None,
                encoding: str = 'utf-8',
                errors: str = 'strict',
                multiline: bool = False,
                **json_kwargs):
        """
        Transform the BoxList object into a JSON string.

        :param filename: If provided will save to file
        :param encoding: File encoding
        :param errors: How to handle encoding errors
        :param multiline: Put each item in list onto it's own line
        :param json_kwargs: additional arguments to pass to json.dump(s)
        :return: string of JSON or return of `json.dump`
        """
        if filename and multiline:
            lines = [
                _to_json(item,
                         filename=False,
                         encoding=encoding,
                         errors=errors,
                         **json_kwargs) for item in self
            ]
            with open(filename, 'w', encoding=encoding, errors=errors) as f:
                f.write("\n".join(lines))
        else:
            return _to_json(self.to_list(),
                            filename=filename,
                            encoding=encoding,
                            errors=errors,
                            **json_kwargs)
Ejemplo n.º 2
0
 def test_to_json(self):
     m_file = os.path.join(tmp_dir, "movie_data")
     movie_string = _to_json(movie_data)
     assert "Rick Moranis" in movie_string
     _to_json(movie_data, filename=m_file)
     assert "Rick Moranis" in open(m_file).read()
     assert json.load(open(m_file)) == json.loads(movie_string)
Ejemplo n.º 3
0
    def to_json(
        self, filename: Union[str, PathLike] = None, encoding: str = "utf-8", errors: str = "strict", **json_kwargs
    ):
        """
        Transform the Box object into a JSON string.

        :param filename: If provided will save to file
        :param encoding: File encoding
        :param errors: How to handle encoding errors
        :param json_kwargs: additional arguments to pass to json.dump(s)
        :return: string of JSON (if no filename provided)
        """
        return _to_json(self.to_dict(), filename=filename, encoding=encoding, errors=errors, **json_kwargs)