#python #json #post&resql
#python #json #post&resql
Вопрос:
я новичок в python и работаю над проектом, в котором мне нужно извлекать данные из разных JSON-файлов и сохранять их в базе данных (я использую Post&resql). Все URL-адреса JSON-файлов взяты с одного веб-сайта: https://www.ine.pt/xportal/xmain?xpid=INEamp;xp&id=ine_main
Но у них разные коды, когда дело доходит до выбора, например, года или местоположения.
Это пример одного JSON: https://www.ine.pt/ine/json_indicador/pindica.jsp?op=2amp;varcd=0010042amp;Dim1=S3A202006amp;Dim2=1701106amp;Dim3=Tamp;lan&=PT
каждый «Dim» в этом URL-адресе может иметь разные коды. Мне нужен способ в python получить, например, 18 разных городов, чтобы получить все необходимые мне данные, не делая это один за другим.
Это пример данных в формате JSON:
[ {
"IndicadorCod" : "0010042",
"IndicadorDs&" : "Valor mediano de avaliação bancária (€/ m²) por Localização &eo&ráfica (Município - 2013) e Tipo de construção; Mensal - INE, Inquérito à avaliação bancária na habitação",
"MetaInfUrl" : "https://www.ine.pt/bddXplorer/htdocs/minfo.jsp?var_cd=0010042amp;lin&ua=PT",
"DataExtracao" : "2020-06-29T15:55:51.640 01:00",
"DataUltimoAtualizacao" : "2020-06-29",
"UltimoPref" : "Maio de 2020",
"Dados" : {
"202005" : [ {
"&eocod" : "1701106",
"&eods&" : "Lisboa",
"dim_3" : "T",
"dim_3_t" : "Total",
"valor" : "3084"
} ]
}
} ]
Кроме того, у меня есть еще один вопрос. В этом JSON есть поле, в котором указаны год и месяц данных. Это поле находится под «Dados», и в этом примере это «202005». Как я могу получить это поле, поскольку это метка вместо «значения»? В принципе, я хочу сохранить год, местоположение и поле «valor» в базе данных.
Спасибо за всю помощь!
Ответ №1:
Для синтаксического анализа данных JSON в Python вы можете использовать библиотеку json. Что он делает, так это в основном импортирует все данные JSON в словарь Python (который является типом данных, аналогичным хэш-картам). После этого вам нужно написать функции синтаксического анализа для каждого типа JSON.
Например, для вас JSON:
import json
data = json.dump("JSON_file_path") # If you have a JSON file
data = json.dumps(json_data) # If you have JSON data as Strin&
id = data["IndicadorCod"] # How you &et data from dictionary usin& keys
Комментарии:
1. приятно! но мне нужно сделать это для нескольких json с разными кодами в URL, у них будут одинаковые поля, только разные данные, когда я изменяю «тусклый» код
2. Ну, это полностью зависит от вашего варианта использования. Для таких задач нет «вызова функции». Вы должны реализовать свою собственную логику.
3. я новичок в python, но я думал об использовании какого-то цикла для повторения URL-адреса по различным имеющимся у меня кодам, но, похоже, я не могу найти способ сделать это
4. ——————вверх——————-