相关疑难解决方法(0)

使用python的eval()与ast.literal_eval()?

我有一些代码的情况,eval()作为一种可能的解决方案.现在我从来没有使用eval()过,但是,我已经发现了很多关于它可能造成的潜在危险的信息.也就是说,我对使用它非常谨慎.

我的情况是我有一个用户给出的输入:

datamap = raw_input('Provide some data here: ')
Run Code Online (Sandbox Code Playgroud)

哪里datamap需要是字典.我四处搜索,发现eval()可以解决这个问题.我认为在尝试使用数据之前我可以检查输入的类型,这将是一个可行的安全预防措施.

datamap = eval(raw_input('Provide some data here: ')
if not isinstance(datamap, dict):
    return
Run Code Online (Sandbox Code Playgroud)

我仔细阅读了文档,但我仍然不清楚这是否安全.eval在输入或datamap调用变量后立即评估数据吗?

ast模块是.literal_eval()唯一安全的选择吗?

python eval abstract-syntax-tree

154
推荐指数
6
解决办法
14万
查看次数

ValueError:无效的RGBA参数:是什么导致此错误?

我正在尝试使用来自以下堆栈的想法创建3D彩色条形图:this stackoverflow post

首先,我使用以下代码创建3D条形图:

import numpy as np
import matplotlib.colors as colors
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

samples = np.random.randint(91,size=(5000,2))

F = np.zeros([91,91])
for s in samples:
    F[s[0],s[1]] += 1

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x_data, y_data = np.meshgrid( np.arange(F.shape[1]),
                              np.arange(F.shape[0]) )
x_data = x_data.flatten()
y_data = y_data.flatten()
z_data = F.flatten()

ax.bar3d(x_data,y_data,np.zeros(len(z_data)),1,1,z_data )
plt.show()
Run Code Online (Sandbox Code Playgroud)

以下是输出:

在此处输入图片说明

现在,我尝试使用以下代码中的逐字逐字为这些条涂上颜色:this stackoverflow post。这是代码:

import numpy as …
Run Code Online (Sandbox Code Playgroud)

python matplotlib rgba

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×2

abstract-syntax-tree ×1

eval ×1

matplotlib ×1

rgba ×1