There is not a simple way and there are factor that you also need to consider before starting.
- Are you using gene names or gene accession numbers/id (NCBI/Uniprot)?
- If not, are the names the current standard ones (e.g. scraped names from old papers is a definite no)
- PDB residue index is rarely the same as protein index.
- Do you want a perfect match or do you want say 80% homology?
- Which PDBs do you want for a protein?
For a website I have developed I have a route that gets all the PDBs for a given gene. (enter link description here). The way I did it is that I parsed Uniprot using a custom parser and made a dictionary/DB for each species with many synonyms for a gene going to a Uniprot ID and then from there I have another dictionary/DB that goes from Uniprot to PDBs if any. I went for Uniprot as I needed other data too (e.g. features) to present to the user. Including a renumbering option.
All this is way overkill for what you need. However, if you specify the species I can easily share a JSON file online.
If point 3 is important and you have Uniprot IDs I would suggest going with SIFTs. It has the offsets and has mapping for Uniprot IDs (pdb_chain_uniprot.tsv).
In terms of mapping gene names to NCBI/Uniprot/Ensembl IDs, there are mapping tables everywhere. But if you may have obscure synonyms, using the NCBI API is a good option.
Uniprot data is better for protein and has PDB codes and chains, but the API gives a XML reply which is a bit annoying (I wrote a parser for it, but I think there was going to be one in Biopython).
If you would like homologues, say your organism is human and you are okay with mouse, you can either use the threaded SwissModel models or use the blast query in RCSB PDB (not the PDBe, which has better data normally) or NCBI set to PDB database.
Swissmodel actually contains also PDB structures, so that may be a good starting point if your organism is one of those where precompiled exists.
Some proteins, especially mammalian are formed by separate domains linked together, especially the docking scaffolds. In which case you may care for a specific model within the gene, hence the indexing issue and the potential getting features.
If you want a single PDB structure for each gene and do not care about the technical I have some Pymol-using py3 code to fuse models together with the N and C termini aligned on line. But I strongly discourage that and would argue for protein feature based routes.