试图做一个 update_item ,如果它没有找到现有的属性,它应该创建新的属性(根据文档),但我收到了一个语法错误。
我整天都在绞尽脑汁想弄清楚为什么我会得到这个,但我似乎无法克服这个问题。感谢您的任何帮助
我得到的错误:
ClientError: An error occurred (ValidationException) when calling the UpdateItem operation:
ExpressionAttributeValues contains invalid key: Syntax error; key: "var4"
Run Code Online (Sandbox Code Playgroud)
我的代码:
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('contacts')
table.update_item(
Key={'email': emailID},
UpdateExpression=SET last_name = :var0, address_1_state = :var1, email_2 = :var2, phone = :var3, phone_2 = :var4
ExpressionAttributeValues={
'var0': 'Metzger',
'var1': 'CA',
'var2': 'none',
'var3': '949 302-9072',
'var4': '818-222-2311'
}
)
Run Code Online (Sandbox Code Playgroud) 我似乎不明白为什么会收到 405“方法不允许”错误消息。
我想在我的项目中创建一个新问题,关键是“BS”。我直接从 Jira 文档复制/粘贴了此内容,但仍然无法使其工作。
我已经尝试了很多不同类型的字符串差异,但这个应该可以。是否有其他原因可能导致我出现此错误?
这是我的代码:
string stringData = @"{""fields"": {""project"":{""key"": ""BS""},""summary"": ""REST ye merry gentlemen."",""issuetype"": {""name"": ""Ticket""}}}";
string url = @"http://HOST.atlassian.net/rest/api/2/issue";
var data = Encoding.ASCII.GetBytes(stringData); // or UTF8
WebRequest wrUrl = WebRequest.Create(url);
wrUrl.ContentType = "application/json";
wrUrl.Method = "POST";
wrUrl.Headers["Authorization"] = "Basic " + Convert
.ToBase64String(Encoding.ASCII.GetBytes(Username+":"+Password));
wrUrl.ContentLength = data.Length;
var newStream = wrUrl.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
Console.WriteLine(wrUrl.GetResponse().ToString());
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)