我正在处理 pandas 中的日期时间信息,并希望将一堆datetime64[ns]列转换为str. 我注意到这两种方法的行为有所不同,我预计会产生相同的结果。
这是一个MCVE。
import pandas as pd
# Create a dataframe with dates according to ISO8601
df = pd.DataFrame({"dt_column": ["2023-01-01", "2023-01-02", "2023-01-02"]})
# Convert the strings to datetimes
# (I expect the time portion to be 00:00:00)
df["dt_column"] = pd.to_datetime(df["dt_column"])
df["str_from_astype"] = df["dt_column"].astype(str)
df["str_from_apply"] = df["dt_column"].apply(str)
print(df)
print()
print("Datatypes of the dataframe")
print(df.dtypes)
Run Code Online (Sandbox Code Playgroud)
输出
dt_column str_from_astype str_from_apply
0 2023-01-01 2023-01-01 2023-01-01 00:00:00
1 2023-01-02 2023-01-02 2023-01-02 00:00:00
2 2023-01-02 2023-01-02 2023-01-02 00:00:00 …Run Code Online (Sandbox Code Playgroud) 我试图用来functools.lru_cache缓存内部函数的结果,但缓存似乎没有按预期工作。
我有一个函数执行一些逻辑,然后调用一个相当昂贵的函数。我想缓存昂贵的函数调用的结果,尽管我只是将其应用于lru_cache内部函数。不幸的是,行为并不符合预期——即使内部函数的参数相同,每次都会调用昂贵的函数。
我创建了一个(简化的)测试用例来显示行为:
import unittest
from functools import lru_cache
from unittest.mock import patch
def expensive_function(parameter: str) -> str:
return parameter
def partially_cached(some_parameter: str) -> str:
@lru_cache
def inner_function(parameter: str):
return expensive_function(parameter)
result = inner_function(some_parameter)
print(inner_function.cache_info())
return result
class CacheTestCase(unittest.TestCase):
def test_partially_cached(self):
with patch(self.__module__ + ".expensive_function") as expensive_mock:
expensive_mock.return_value = "a"
self.assertEqual(partially_cached("a"), "a")
self.assertEqual(partially_cached("a"), "a")
# If the cache works, I expect the expensive function
# to be called just once for the same parameter
expensive_mock.assert_called_once()
if …Run Code Online (Sandbox Code Playgroud) 我正在使用 docker compose 创建两个容器,一个用于 dynamodb local,一个用于 Nodejs Express 应用程序。
docker-compose.dev.yml
version: '3'
services:
dynamodb-local:
command: "-jar DynamoDBLocal.jar -sharedDb -optimizeDbBeforeStartup -dbPath ./data"
image: "amazon/dynamodb-local:latest"
container_name: dynamodb-local
ports:
- "8000:8000"
volumes:
- "./docker/dynamodb:/home/dynamodblocal/data"
working_dir: /home/dynamodblocal
networks:
- dynamodb-network
node-app:
depends_on:
- dynamodb-local
container_name: dev-nodejs-backend
ports:
- '3000:3000'
volumes:
- .:/usr/src/node-app
environment:
AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE'
AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY'
networks:
- dynamodb-network
command: yarn dev -L
networks:
dynamodb-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM node:alpine
RUN mkdir -p /usr/src/node-app && chown -R node:node /usr/src/node-app
WORKDIR /usr/src/node-app
COPY package.json …Run Code Online (Sandbox Code Playgroud) 我正在使用shutil.copypython 中的方法。
我找到了下面列出的定义:
def copyFile(src, dest):
try:
shutil.copy(src, dest)
# eg. src and dest are the same file
except shutil.Error as e:
print('Error: %s' % e)
# eg. source or destination doesn't exist
except IOError as e:
print('Error: %s' % e.strerror)
Run Code Online (Sandbox Code Playgroud)
我正在访问循环内的定义。该循环基于每次更改的字符串。代码查看目录中的所有文件,如果看到文件中的一部分字符串,则将其复制到新位置
我很确定会有重复的文件。所以我想知道会发生什么。
他们会被复制,还是会失败?
我在使用Oracle.ManagedDataAccess.dll.
我在 Technet 上遵循了本教程,最终得到了以下代码:
add-type -path "C:\oracle\product\12.1.0\client_1\ODP.NET\managed\common\Oracle.ManagedDataAccess.dll"
$username = "XXXX"
$password = "XXXX"
$data_source = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXX)(PORT=XXXX))(CONNECT_DATA = (SERVER=dedicated)(SERVICE_NAME=XXXX)))"
$connection_string = "User Id=$username;Password=$password;Data Source=$data_source"
try{
$con = New-Object Oracle.ManagedDataAccess.Client.OracleConnection($connection_string)
$con.Open()
} catch {
Write-Error (“Can’t open connection: {0}`n{1}” -f `
$con.ConnectionString, $_.Exception.ToString())
} finally{
if ($con.State -eq ‘Open’) { $con.close() }
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到此错误:
C:\Users\XXXX\Desktop\oracle_test.ps1 : Can’t open connection: User Id=XXXX;Password=XXXX;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXX)(PORT=XXXX))(CONNECT_DATA =
(SERVER=dedicated)(SERVICE_NAME=XXXX)))
System.Management.Automation.MethodInvocationException: Exception calling "Open" with "0" argument(s): "The type initializer for 'Oracle.ManagedDataAccess.Types.TimeStamp' threw an …Run Code Online (Sandbox Code Playgroud) 我在网上搜索了一些有关任务定义和容器部署的实用信息,但找不到任何现实生活中的示例。
是否存在需要将容器分散到多个任务而不是在 1 个任务中运行多个容器的情况?
例如,如果我有一个后端服务和一个前端服务,我应该将它们放在同一个任务中,以便它们共享相同的网络并位于同一主机上,还是应该为它们创建 2 个单独的任务?
我有一个用例,我们没有得到太多在单个请求中存在要更新的条目列表的情况,并且大多数情况下,只有一个条目被请求更新。但将来,这种情况可能会增长,因此我正在考虑使用 BatchPutItem 而不是 PutItem。
performance latency amazon-web-services throughput amazon-dynamodb
我在 AWS 的 VPC 内有一个 lambda 函数。我想附加 http 处理程序(函数 URL)。
问题是,如果我启用函数 URL,那么它会创建一个公共端点。
我不想使用的替代方案
有没有一种方法可以创建 AWS Lambda 函数 URL,但它只能在 VPC 内访问而不涉及 AWS SKD?(喜欢wget URL)
我目前正在研究 DynamoDB 的按需设置。我们偶尔会在高流量高峰期间看到一些限制,它跨越所有索引,因此不特定于某个分区。所有与按需容量模式相关的 DynamoDB 文档似乎都表明,一旦设置了新的峰值使用量,它基本上就无限期地达到峰值。我的假设是否正确,还是在一段时间后它会重置/缩小?是否有任何地方记录了按需容量模式的发电机扩展的内部结构?
我想通过配置任意高容量并切换回按需容量模式来预热我的低容量表,只是想最终发现该策略会随着时间的推移而持续下去吗?
我一直在尝试扫描 DynamoDB 以检查名为“可交付成果”的嵌套地图属性中的特定值。然而,使用带有过滤表达式的扫描会导致空结果。
import boto3
result = []
dynamo_client = boto3.client("dynamodb")
paginator = dynamo_client.get_paginator("scan")
operation_parameters = {
'FilterExpression': "#Deliverable= :deliverable",
'ExpressionAttributeNames': {
'#Deliverable': 'deliverables.fc986523-a666-478e-8303-2a1c3c1dc4ba'
},
'ExpressionAttributeValues': {
':deliverable': {
"M": {
"read": {
"BOOL": True
},
"upload": {
"BOOL": True
},
"write": {
"BOOL": True
}
}
}
}
}
for page in paginator.paginate(TableName="TableName", **operation_parameters):
result.append(page["Items"])
print(result)
Run Code Online (Sandbox Code Playgroud)
dynamo 数据库中的项目如下所示:
[
[
{
"deliverables":{
"M":{
"7397d832-fefb-4ba2-97a1-0f6e73d611d9":{
"M":{
"read":{
"BOOL":true
},
"upload":{
"BOOL":true
},
"write":{
"BOOL":true
}
}
},
"fc986523-a666-478e-8303-2a1c3c1dc4ba":{
"M":{
"read":{ …Run Code Online (Sandbox Code Playgroud) python ×3
python-3.x ×2
amazon-ecs ×1
amazon-vpc ×1
aws-lambda ×1
caching ×1
database ×1
datetime ×1
devops ×1
docker ×1
latency ×1
node.js ×1
nosql ×1
oracle ×1
pandas ×1
performance ×1
powershell ×1
shutil ×1
throughput ×1
yaml ×1