{"id":23291084,"url":"https://github.com/jplusplus/python-journalism-inspiration","last_synced_at":"2026-03-20T01:07:58.791Z","repository":{"id":146311697,"uuid":"172072371","full_name":"jplusplus/python-journalism-inspiration","owner":"jplusplus","description":null,"archived":false,"fork":false,"pushed_at":"2019-03-13T09:29:29.000Z","size":44,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-10-19T11:49:56.561Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jplusplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-22T13:38:27.000Z","updated_at":"2023-08-09T00:41:56.000Z","dependencies_parsed_at":"2023-05-22T07:30:35.592Z","dependency_job_id":null,"html_url":"https://github.com/jplusplus/python-journalism-inspiration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jplusplus/python-journalism-inspiration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fpython-journalism-inspiration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fpython-journalism-inspiration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fpython-journalism-inspiration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fpython-journalism-inspiration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jplusplus","download_url":"https://codeload.github.com/jplusplus/python-journalism-inspiration/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplusplus%2Fpython-journalism-inspiration/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29613135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T10:52:55.328Z","status":"ssl_error","status_checked_at":"2026-02-19T10:52:26.323Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-20T05:14:03.289Z","updated_at":"2026-03-20T01:07:58.781Z","avatar_url":"https://github.com/jplusplus.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# I just finished the Python course for journalists, what's next?\n\n## Stories that used Python (with code!)\n\n* In [*The Tennis Racket*](http://www.buzzfeed.com/heidiblake/the-tennis-racket) Buzzfeed used Python to analyse betting trends on professional tennis matches and found patterns that suggested match-fixing. The code can be found [here](https://github.com/BuzzFeedNews/2016-01-tennis-betting-analysis/blob/master/notebooks/tennis-analysis.ipynb).\n\n* In [*The Ferguson Area Is Even More Segregated Than You Probably Guessed*](https://www.buzzfeednews.com/article/jsvine/the-ferguson-area-is-even-more-segregated-than-you-thought) Buzzfeed used Python to analyse segregation in St. Louis county. The code can be found [here](https://github.com/BuzzFeedNews/2014-08-st-louis-county-segregation/blob/master/notebooks/segregation-analysis.ipynb).\n\n* In [*The Dollar-And-Cents Case Against Hollywood’s Exclusion of Women*](https://fivethirtyeight.com/features/the-dollar-and-cents-case-against-hollywoods-exclusion-of-women/) 538 analysed if films that pass the Bechdel Test make more money for their producers? The article was replicated by Brian Keegan using Python and his code can be found [here](https://nbviewer.jupyter.org/github/brianckeegan/Bechdel/blob/master/Bechdel_test.ipynb). Keegan's notebook is a must-read for journalists who aspire to do data-driven reporting.\n\n* Justin Seitz and Jan Cronjé used Python to identify [*fake websites connected to an Indian IT guru*](https://www.news24.com/SouthAfrica/News/exclusive-indian-it-guru-linked-to-fake-wmc-sites-20170726). The code can be found [here](http://www.automatingosint.com/blog/2017/07/osint-website-connections-tracking-codes/).\n\n* Jens Finnäs used Python to analyse the relationship between asylum immigration and crime, and concluded that there was no relationship between the number of asylum seekers in a town and its crime rate. The story was published in *Dagens Samhälle* and the code can be found [here](https://github.com/jensfinnas/dagenssamhalle-notebooks/blob/master/flyktingar_och_brottslighet/Flyktingar%20och%20brottslighet%20i%20kommuner.ipynb).\n\n* [*How orthography revaled corruption in Kyrgyzstan*](https://www.bellingcat.com/resources/how-tos/2018/10/22/corrupt-latin-orthography-revealed-corruption-kyrgyzstan/).\n\n## Tools and packages\n* [*Jupyter Lab*](https://towardsdatascience.com/jupyter-lab-evolution-of-the-jupyter-notebook-5297cacde6b)\n* [*Download the entire Wayback Machine archive for a given URL*](https://github.com/jsvine/waybackpack) via the command-line\n* [*Awesome OSINT*](https://github.com/jivoi/awesome-osint) list\n\n## Snippets and scripts\n* [*Useful Pandas snippets*](https://gist.github.com/bsweger/e5817488d161f37dcbd2)\n* [*Assorted utility functions from J++ Python courses*](https://github.com/jplusplus/goodiebag)\n\n## Tutorials\n\n**Scraping**\n\n* [*Scraping Sci-Fi movies from IMDB with Python*](https://link.medium.com/8TJsiG8DJU)\n* [*Create your own database of citizens*](https://www.bellingcat.com/resources/how-tos/2019/02/14/creating-your-own-citizen-database/)\n* [*How to aumatically find weapons in social media images*](http://www.automatingosint.com/blog/2016/01/osint-automatically-finding-weapons-in-social-media-images-part-1/) using APIs\n\n**Analysis**\n* [*Investigation of voting patterns demographic correlations in Sweden*](http://maxberggren.se/2016/08/15/SD/)\n* [*\"Good bye Excel, hello Pandas\"*](https://github.com/jplusplus/noda2018-pandas-workshop) workshop at Noda 2018 and [*Pandas 101*](https://github.com/horriblesmell/noda-pres-17) at Noda 2017\n\n* [*A Pandas tour in Jupyter Notebook*](https://nbviewer.jupyter.org/gist/wesm/4757075/PandasTour.ipynb)\n\n* [*Cleaning data with Pandas/Python*](http://www.jeannicholashould.com/tidy-data-in-python.html)\n\n**Misc**\n\n## Newsletters\n\n* The [*Journalism++ newsletter*](https://us10.campaign-archive.com/home/?u=f5c9b898477bcd7a7e64e37d9\u0026id=bf2d183171) gives bi-weekly tips about stories, tools and much more related to data and journalism.\n* [*DataElixir*](https://dataelixir.com/) is a newsletter about all things data.\n* [*Naked Data*](https://nakeddata.co.za/) is a newsletter by data journalist Jason Norwood-Young.\n* [*Data Is Plural*](https://tinyletter.com/data-is-plural) is a newsletter by data journalist Jeremy Singer-Vine.\n* [*Banana Data*](http://banana-data.com/) is a newsletter with focus on AI and data science.\n\n## Reads\n\n* [PEP 8](https://www.python.org/dev/peps/pep-0008/) is a style guide for easy to read and beautiful Python code. The section on [*naming conventions*](https://www.python.org/dev/peps/pep-0008/#naming-conventions) is particularly good to follow.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplusplus%2Fpython-journalism-inspiration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjplusplus%2Fpython-journalism-inspiration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplusplus%2Fpython-journalism-inspiration/lists"}