Tôi có một tập hợp các url chứa các tệp json và một khung dữ liệu pandas rỗng với các cột đại diện cho các thuộc tính của các tệp jsnon. Không phải tất cả các tệp json đều có tất cả các thuộc tính trong khung dữ liệu gấu trúc. Những gì tôi cần làm là tạo từ điển trong số các tệp json và sau đó nối từng từ điển vào khung dữ liệu gấu trúc dưới dạng hàng mới và, trong trường hợp tệp json không có thuộc tính khớp với một cột trong khung dữ liệu, điều này phải là đầy trống.Làm cách nào để nối thêm từ điển vào một khung dữ liệu gấu trúc?
tôi quản lý để tạo ra các từ điển như:
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)
và sau đó tôi đã cố gắng để tạo ra một vòng lặp for như sau:
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
nơi df là dataframe và các liên kết là tập hợp của các url
Tuy nhiên, tôi nhận được lỗi sau:
raise KeyError('%s not in index' % objarr[mask])
KeyError: "['2_seater_depth_mm'] not in index"
nơi [ '2_seater_depth_mm'] là cột đầu tiên của gấu trúc dataframe
nó mang lại cho tôi lỗi này: other = np.array (khác, dtype = 'i8') ValueError: chữ không hợp lệ cho dài() với cơ số 10: '2015-05-28 16:31:19' –
Trong mã của tôi, tôi đã định nghĩa df với 'dtype = 'str'' Từ lỗi, tôi giả định rằng một số cột của bạn là ints, vì vậy bạn không thể lưu trữ văn bản ở đó. Hãy thử xác định các cột df là str và sau khi tải dữ liệu thao tác với các loại. – zuku