网状允许您从R.在Python中与Python进行接口,通常使用(类)方法与变量交互。如何访问/执行R中的一个Python变量的方法?例如,如果我创建以下Python字典:
```{python}水果={
"apple": 53,"banana": None,"melon": 7,}
可以用网状结构获取,
```{r}py$水果
## $apple
## [1] 53
##
## $banana
## NULL
##
## $melon
## [1] 7如何调用字典类中的一个方法,例如R中的keys()?
```{python}打印(fruits.keys())
## dict_keys(['apple', 'banana', 'melon'])我试过:
```{r error=TRUE}py$水果$keys()
## Error in eval(expr, envir, enclos): attempt to apply non-function
```{r error=TRUE}py$fruits.keys()
## Error in py_get_attr_impl(x, name, silent): AttributeError: module '__main__' has no attribute 'fruits.keys'但两次尝试都失败了。
发布于 2018-06-29 20:47:10
正如类型转换中所指出的,Python对象变成了R中的命名列表,因此,要访问R中的“字典键”,您可以使用names
```{r}名称(py$水果)
## [1] "melon" "apple" "banana"您可以选择使用dict-like对象将结果转换回reticulate::dict()。然后,生成的对象将按您的需要运行:
```{r}网格::dict(py$水果)
## {'melon': 7, 'apple': 53, 'banana': None}
```{r}网状::dict(py$水果)$keys()
## ['melon', 'apple', 'banana']发布于 2019-07-09 21:18:00
对原始Python块进行一点反思:
```{python}水果={
“苹果”:53,
“香蕉”:没有,
“甜瓜”:
}
在另一个R块中:
```{r}py_fruits <- r_to_py(py$果树)
py_list_attributes(py_fruits)
py_fruits$keys()
py_fruits$items()
您将获得(1)对象的所有可用属性,(2) dict键;(3) dict item;(4) dict值:

使用r_to_py()观察从R到Python的转换。
如果您想深入挖掘,也可以这样做:
```{r}图书馆(网状)
builtins <- import_builtins()
内置$dict$key(py$水果)#key
$dict$项目(py$水果)#项目
内置$dict$value(py$水果)#值

https://stackoverflow.com/questions/51108722
复制相似问题