我在规范化的sqlite数据库上有一个相当复杂的查询(多个连接).查询执行SELECT*以启用一些自动属性选择逻辑(所以我无法消除"*")
我遇到的问题是我的结果集包含多个具有相同属性名称的列.例如,查询中每个表共有的一个属性是"_id".当我去调用时"cursor.getColumnIndex("_id")",返回的值始终是"_id"结果集列列表中最后一个属性的索引(即不是我想要的那个).我希望能够使用我的SQL别名前缀,cursor.getColumnIndex("A._id")但这不起作用.
问题
似乎cursor.getColumnIndex(AttributeName)返回最后一个"AttributeName"的索引.谁能证实这一点?另外,关于如何使用"AttributeName"返回第一个属性的索引的任何建议?或更好的具有"AttributeName"的Xth属性?
我想规范化来自外部资源的路径以防止目录遍历攻击.我知道realpath()函数,但遗憾的是这个函数只返回现有目录的路径.因此,如果目录不存在(还),则realpath()函数会切断不存在的路径的整个部分.
所以我的问题是:你知道一个只能规范路径的PHP函数吗?
PS:我也不想提前创建所有可能的目录;-)
我有一个包含多个换行符的字符串.
字符串:
This is a dummy text. I need
to format
this.
Run Code Online (Sandbox Code Playgroud)
期望的输出:
This is a dummy text. I need to format this.
Run Code Online (Sandbox Code Playgroud)
我正在使用这个:
$replacer = array("\r\n", "\n", "\r", "\t", " ");
$string = str_replace($replacer, "", $string);
Run Code Online (Sandbox Code Playgroud)
但它没有按要求/要求工作.有些单词之间没有空格.
实际上我需要用单个空格分隔的所有单词转换字符串.
我正在浏览这个答案然后我看到了这行代码:
var port = normalizePort(process.env.PORT || '4300');
Run Code Online (Sandbox Code Playgroud)
为什么不
var port = (process.env.PORT || '4300');
Run Code Online (Sandbox Code Playgroud)
从这个博客有一个解释:
normalizePort(val) 函数只是将端口规范化为数字、字符串或 false。
我还是不明白。然后我查看这里的规范化是什么。我有一些想法,但我还是不明白。
normalizePort() 函数的目的是什么?
如果我们不使用它会发生什么?
(它所做的一个例子会真正帮助我理解)谢谢。
我刚刚发现了 json_normalize 函数,它在获取 JSON 对象并给我一个 Pandas Dataframe 方面效果很好。现在我想要反向操作,它采用相同的 Dataframe 并给我一个与原始 json 具有相同结构的 json(或类似 json 的字典,我可以很容易地转换为 json)。
这是一个示例:https : //hackersandslackers.com/json-into-pandas-dataframes/。
他们获取一个 JSON 对象(或类似 JSON 的 Python 字典)并将其转换为数据帧,但我现在想获取该数据帧并将其转换回类似 JSON 的字典(稍后转储到 json 文件)。
我需要规范化N个整数的向量,以便:
例如:
如果我有一个矢量
V = [2,2,1,0]
Run Code Online (Sandbox Code Playgroud)
规范化的矢量应该是:
V_norm = [0.4,0.4,0.2,0] % 0.4+0.4+0.2 = 1
Run Code Online (Sandbox Code Playgroud)
我尝试了在这个社区和网络上找到的许多解决方案,最后我用这个代码做了:
part = norm(V);
if part > 0
V_norm = V/part;
else % part = 0 --> avoid "divide by 0"
V_norm = part;
end
Run Code Online (Sandbox Code Playgroud)
这有效的问题如果:
但如果我有不同的情况,虽然结果是成比例的,但总和不是0.例如:
V = [1,0,1]
V_norm = [0.74,0,0.74]
V = [1,1,1]
V_norm = [0.54,0.54,0.54]
Run Code Online (Sandbox Code Playgroud)
(我不确定这个数字是否正确,因为我现在不能使用Matlab,但我确定总和> 1)
Ahy暗示?
先感谢您
我已经开始了一个新项目,他们有一个非常规范化的数据库.可以查找的所有内容都作为外键存储到查找表中.这是规范化和精细的,但我最终为最简单的查询做了5个表连接.
from va in VehicleActions
join vat in VehicleActionTypes on va.VehicleActionTypeId equals vat.VehicleActionTypeId
join ai in ActivityInvolvements on va.VehicleActionId equals ai.VehicleActionId
join a in Agencies on va.AgencyId equals a.AgencyId
join vd in VehicleDescriptions on ai.VehicleDescriptionId equals vd.VehicleDescriptionId
join s in States on vd.LicensePlateStateId equals s.StateId
where va.CreatedDate > DateTime.Now.AddHours(-DateTime.Now.Hour)
select new {va.VehicleActionId,a.AgencyCode,vat.Description,vat.Code,
vd.LicensePlateNumber,LPNState = s.Code,va.LatestDateTime,va.CreatedDate}
Run Code Online (Sandbox Code Playgroud)
我想建议我们取消一些东西.喜欢州代码.在我的一生中,我没有看到州代码的变化.类似的故事与3个字母的代理商代码.这些由代理机构发放,永远不会改变.
当我找到状态代码问题和5表连接的DBA时.我得到了"我们正常化"和"加入很快"的回应.
反规范化有一个令人信服的论据吗?如果没别的话,我会为了理智而这样做.
T-SQL中的相同查询:
SELECT VehicleAction.VehicleActionID
, Agency.AgencyCode AS ActionAgency
, VehicleActionType.Description
, VehicleDescription.LicensePlateNumber
, State.Code AS LPNState
, VehicleAction.LatestDateTime AS ActionLatestDateTime
, VehicleAction.CreatedDate
FROM …Run Code Online (Sandbox Code Playgroud) 我有一个充满正int值的数组,我怎么能规范化这个列表所以最大值总是100?先感谢您!
我有一个带有形状的numpy数组(34799, 32, 32, 3),意思是(num examples, width, height, channels).
现在我使用以下代码规范化图像数据:
def normalize(x):
return (x - 128) / 128
X_train_norm = normalize(X_train)
Run Code Online (Sandbox Code Playgroud)
但结果似乎不对,价值X_train[0][0][0]是[28 25 24],但输出X_train_norm[0][0][0]是[1.21875 1.1953125 1.1875].
我使用以下测试代码:
test = np.array([[[[28, 25, 24]]]])
print ((test - 128) / 128)
Run Code Online (Sandbox Code Playgroud)
输出:
[[[[-0.78125 -0.8046875 -0.8125 ]]]]
Run Code Online (Sandbox Code Playgroud)
为什么normalize函数得到错误的结果?