将列表转换为python中的字典

时间:2018-04-13 10:47:43

标签: python list dictionary load

我的数据如下所示:

[
{'id': 1, 'first_name': 'Jeanette', 'last_name': 'Penddreth', 'email': 'jpenddreth0@census.gov', 'gender': 'Female', 'ip_address': '26.58.193.2'}, 
{'id': 2, 'first_name': 'Giavani', 'last_name': 'Frediani', 'email': 'gfrediani1@senate.gov', 'gender': 'Male', 'ip_address': '229.179.4.212'}, 
{'id': 3, 'first_name': 'Noell', 'last_name': 'Bea', 'email': 'nbea2@imageshack.us', 'gender': 'Female', 'ip_address': '180.66.162.255'}, 
{'id': 4, 'first_name': 'Willard', 'last_name': 'Valek', 'email': 'wvalek3@vk.com', 'gender': 'Male', 'ip_address': '67.76.188.26'}
]

我正在将数据加载到dynamoDb中。失败时出现错误type: <class 'list'>, valid types: <class 'dict'>: ParamValidationError

如何将上面的列表转换为字典?

编辑使用的代码:

import boto3
import json

s3_client=boto3.client('s3')
dynamodb=boto3.resource('dynamodb')

def lambda_handler(event, context): 
    bucket=event['Records'][0]['s3']['bucket']['name'] 
    json_filename=event['Records'][0]['s3']['object']['key']
    json_object=s3_client.get_object(Bucket=bucket,Key=json_filename)
    jsonFileReader=json_object['Body'].read()
    jsonDictionary=json.loads(jsonFileReader)
    table=dynamodb.Table('EMPLOYEE_DETAILS') 
    table.put_item(Item=jsonDictionary) 
    return 'Done'

1 个答案:

答案 0 :(得分:0)

我不熟悉dynamodb,但我想这会奏效。如果您的JSON是一个列表,那么您需要遍历列表中的项目,将每个项目添加到表格中。

替换行:

table.put_item(Item=jsonDictionary) 

使用:

if type(jsonDictionary) == type([]):
    # It is a list - iterate through it
    for item in jsonDictionary:
        table.put_item(Item=item) 
else:
    table.put_item(Item=jsonDictionary)