我正在尝试在DynamoDB(amazonweb服务)中使用batch_writer()。我读取第一个CSV,将每个标题存储在Dict中
CSV#1->;我有三个口述(国家名称、语言、ISO3)。国家名称是DynamoDb表中的主键
CSV#2->;我只想存储CSV中的一列,因此我只有一个Dict(区域)
当我上传这些值时,它不会像CSV1中的3个DICT那样循环遍历区域中的每个值
with open('shortlist_languages.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
country_name = {
'Country Name': row['Country Name']
}
languages = {
'Languages': row['Languages']
}
iso3 = {
'ISO3': row['ISO3']
}
with open('shortlist_area.csv', 'r') as file_area:
reader_area = csv.DictReader(file_area)
for row in reader_area:
area = {
'Area': row['Area']
}
for vals_area in area.values():
for value in country_name.values():
print(value)
for values in languages.values():
for values_iso3 in iso3.values():
with table.batch_writer(overwrite_by_pkeys=['Country Name']) as batch:
batch.put_item(
Item={
'Country Name': value,
'Languages': values,
'ISO3': values_iso3,
'Area':vals_area
}
)
我的DynamoDB表格截图——正如你们所看到的那个样,这个区域并没有正常循环。我的CSV中区域的最后一个值正在重复打印。我怎样才能解决这个问题
CSV#1样本:
ISO3,Country Name,Languages
ALB,Albania,Albanian
DZA,Algeria,Arabic,Tamazight
AND,Andorra,Catalan
AGO,Angola,Portuguese
CSV#2样本
ISO3,Country Name,Area
ALB,Albania,28748
DZA,Algeria,2381741
AND,Andorra,468
AGO,Angola,1246700
您的代码嵌套不正确。下面是一些示例代码,它首先将语言文件读入字典,然后循环遍历区域文件:
(我懒得使用CSV函数!)
输出为:
请注意,阿尔及利亚在其输出中有多种语言
相关问题 更多 >
编程相关推荐