2017-04-19 39 views
1

对于博托的CREATE_TABLE功能,我想下面的字符串如何创建一个JSON字符串传递给它OT CREATE_TABLE()

'AttributeDefinitions': [{'AttributeName': 'Id','AttributeType': 'N'},{'AttributeName': 'orgId','AttributeType': 'S'}] 

'KeySchema': [{'AttributeName': 'orgId','KeyType': 'HASH'},{'AttributeName': 'Id','KeyType': 'RANGE'}] 

'ProvisionedThroughput': {'ReadCapacityUnits': 1,'WriteCapacityUnits': 1} 

我想替换与变量的值,我尝试以下方法,但它没有工作。

attribute_definition="'AttributeDefinitions': [{'AttributeName':"+hash_attribute_name+",'AttributeType':"+hash_attribute_type+"},{'AttributeName': "+range_attribute_name+",'AttributeType': "+range_attribute_type+"}]" 

key_schema="'KeySchema': [{'AttributeName': "+hash_attribute_name+",'KeyType': 'HASH'},{'AttributeName': "+hash_attribute_type+",'KeyType': 'RANGE'}]" 

capacity="'ProvisionedThroughput': {'ReadCapacityUnits': "+read_capacity+",'WriteCapacityUnits': "+write_capacity+"}" 

然后我试着创建一个如下所示的列表。

attribute_definition={'AttributeDefinitions': [{'AttributeName':hash_attribute_name,'AttributeType':hash_attribute_type},{'AttributeName': range_attribute_name,'AttributeType': range_attribute_type}]} 

key_schema={'KeySchema': [{'AttributeName': hash_attribute_name,'KeyType': 'HASH'},{'AttributeName': hash_attribute_type,'KeyType': 'RANGE'}]} 

capacity={'ProvisionedThroughput': {'ReadCapacityUnits': read_capacity,'WriteCapacityUnits': write_capacity} 

它扔以下错误:print ("attribute_definition") ^ SyntaxError: invalid syntax

我试图将字符串中使用json.loads()转换成JSON太

attribute_definition=json.loads("{'AttributeDefinitions': [{'AttributeName':"+hash_attribute_name+",'AttributeType':"+hash_attribute_type+"},{'AttributeName': "+range_attribute_name+",'AttributeType': "+range_attribute_type+"}]}") 

key_schema=json.loads("{'KeySchema': [{'AttributeName': "+hash_attribute_name+",'KeyType': 'HASH'},{'AttributeName': "+hash_attribute_type+",'KeyType': 'RANGE'}]}") 

capacity=json.loads("{'ProvisionedThroughput': {'ReadCapacityUnits': "+read_capacity+",'WriteCapacityUnits': "+write_capacity+"}}") 

发现以下错误:ValueError: Expecting property name: line 1 column 2 (char 1)

我想要将这个字符串或列表传递给create_table函数来创建表。

任何人都可以请帮助我,我该如何实现它。

回答

0

你试过json.dumps吗?

>>> hash_attribute_name = 'Id' 
    >>> hash_attribute_type = 'N' 
    >>> range_attribute_name = 'orgId' 
    >>> range_attribute_type = 'S' 
    >>> attribute_definition={'AttributeDefinitions':[{'AttributeName':hash_attribute_name,'AttributeType':hash_attribute_type},{'AttributeName': range_attribute_name,'AttributeType': range_attribute_type}]} 
    >>> attribute_definition 
    {'AttributeDefinitions': [{'AttributeName': 'Id', 'AttributeType': 'N'}, {'AttributeName': 'orgId', 'AttributeType': 'S'}]} 
    >>> import json 
    >>> json.dumps(attribute_definition) 
    '{"AttributeDefinitions": [{"AttributeName": "Id", "AttributeType": "N"}, {"AttributeName": "orgId", "AttributeType": "S"}]}' 
+0

它不工作:(,它仍然不会将它转换为列表。 –

相关问题