У меня есть набор URL-адресов, содержащих json-файлы, и пустой фрейм данных pandas с столбцами, представляющими атрибуты jsnon-файлов. Не все json-файлы имеют все атрибуты в фреймворке pandas. Мне нужно сделать, чтобы создать словари из json-файлов, а затем добавить каждый словарь в базу данных pandas как новую строку, и в случае, если json-файл не имеет атрибута, соответствующего столбцу в фреймворке данных, это должно быть заполненный пробел.Как добавить словарь в базу данных pandas?
мне удалось создать словари, как:
import urllib2
import json
url = "https://cws01.worldstores.co.uk/api/product.php?product_sku=ULST:7BIS01CF"
data = urllib2.urlopen(url).read()
data = json.loads(data)
, а затем я попытался создать цикл следующим образом:
row = -1
for i in links:
row = row + 1
data = urllib2.urlopen(str(i)).read()
data = json.loads(data)
for key in data.keys():
for column in df.columns:
if str(column) == str(key):
df.loc[[str(column)],row] = data[str(key)]
else:
df.loc[[str(column)],row] = None
где ДФ является dataframe и ссылки есть множество адресов
Однако, я получаю следующее сообщение об ошибке:
raise KeyError('%s not in index' % objarr[mask])
KeyError: "['2_seater_depth_mm'] not in index"
где [ «2_seater_depth_mm»] является первый столбец панд dataframe
это дает мне эту ошибку: другие = np.array (другой, DTYPE = 'i8') ValueError: недопустимый буквальным долго() с основанием 10: '2015-05-28 16:31:19' –
В моем коде я определил df с 'dtype = 'str'' От ошибки Я предполагаю, что некоторые из ваших столбцов являются int, поэтому вы не можете хранить там текст. Попробуйте определить столбцы df как str и после загрузки данных манипулировать с помощью типов. – zuku