Я создал программу, которая извлекает из двух сайтов (RBFR и RSCF) информацию, преобразуя её сперва в парсер JSON, а затем на основе этого превращает в таблицу в HTML. Для начала я написал два кода, которые извлекают информацию из сайтов, а потом программу, которая запускает оба кода, а затем преобразует объединённый парсер в таблицу
Первый код
Второй код
А вот собственно сама программа
import os
import threading
import json
import simplejson
from pandas import json_normalize
import psycopg2
from sqlalchemy import create_engine
from json2html import *
def execute_script(name):
os.system('python ' + name)
#Execute a.py on a thread (concurrently)
a = threading.Thread(target=execute_script, args=('rscf.py',))
a.start()
#Execute b.py on a thread (concurrently)
b = threading.Thread(target=execute_script, args=('rbfr.py',))
b.start()
#Block main execution until a.py is terminated
a.join()
#Block main execution until b.py is terminated
b.join()
f1data = f2data = ""
with open('out.json', encoding='utf-8') as f1:
f1data = f1.read().replace("]", "").replace("[", "").strip()
with open('out2.json', encoding='utf-8') as f2:
f2data = f2.read().replace("]", "").replace("[", "").replace("Заявки не принимаются", "Конкурс завершен").strip()
f1data += "\n"
f1data += f2data
with open ('merged.json', 'a+', encoding='utf-8') as f3:
f3.write(f1data)
df = json_normalize(f3)
with open('merged.json', 'a+', encoding='utf-8') as hml:
d = json.load(hml)
scanOutput = json2html.convert(json=d)
htmlReportFile = "merged.html"
with open(htmlReportFile, 'w', encoding='utf-8') as htmlfile:
htmlfile.write(str(scanOutput))
print("OK")
Увы, код выдает следующую ошибку:
Traceback (most recent call last):
File "C:\Download\postgresql\main.py", line 41, in <module>
d = json.load(hml)
File "C:\Users\Руслан\AppData\Local\Programs\Python\Python311\Lib\json\__init__.py", line 293, in load
return loads(fp.read(),
File "C:\Users\Руслан\AppData\Local\Programs\Python\Python311\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Users\Руслан\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Руслан\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)