从 C# 访问 Ironpython 字典

2024-01-26

我在 Ironpython 脚本中定义了字典,我想从我的 C# 访问该字典 代码。有人可以提供示例代码来实现我的要求。

抱歉,之前我没有用代码提及我的问题陈述。

import clr
clr.AddReference("System.Core")
import System
clr.ImportExtensions(System.Linq)
from System.Collections.Generic import Dictionary,List

def check(self):
    dict1 = Dictionary[str,str]
    dict1["a"] = "aa"
    dict2 = Dictionary[str,str]
    dict2["b"] = "bb"
    self[0] = dict1
#   self.Add(dict1)
    return self

C#

var runtime = Python.CreateRuntime();
dynamic test = runtime.UseFile("Test.py");


var myDictList = new List<Dictionary<string, string>>();
var myDL = new List<Dictionary<string, string>>();
myDL = test.check(myDictList);

我的目标是在 python 中的字典列表上进行操作(添加、从列表中删除)并将其发送回 C#,在那里我可以进一步使用它。 我想要的是在 python 或 C# 中创建一个字典列表,并在两个地方(python 和 C#)使用它。 我该怎么办呢。


这有效:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Utils;
using Microsoft.Scripting.Runtime;
using IronPython;
using IronPython.Hosting;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ScriptEngine pyEngine = Python.CreateEngine();
            ScriptScope pyScope = pyEngine.CreateScope();
            ScriptSource pyScript = pyEngine.CreateScriptSourceFromString("d = {'a':1,'b':2,'c':3}");
            CompiledCode pyCompiled = pyScript.Compile();
            pyCompiled.Execute(pyScope);
            IronPython.Runtime.PythonDictionary d = pyScope.GetVariable("d");
            Console.WriteLine(d.get("a"));
            Console.Read();
        }
    }
}

应该为您提供键“a”的第一个值。希望这能让你继续前进。 可能有一两个包含太多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C# 访问 Ironpython 字典 的相关文章

  • 使用 Linq 返回具有最大计数的列表

    使用 C 和 Linq 如何返回具有最大大小 计数的 List 我假设您有一个名为的列表集合lists并且您想要返回此集合中元素最多的列表 如果是这样 请尝试以下操作 var listWithLargestCount lists Order
  • C# 中服务器端代码的 ModalPopupExtender

    我做了一场噩梦 将 ModalPopupExtender 添加到表单很容易 您将其放在上面并告诉它两个所需的控件参数 PopupControlID MyModalPanel TargetControlID ButtonToLoadIt 它工
  • C# 中的空“if”语句是否会导致错误或警告?

    让我从一个现实生活中的例子开始 顾客 Alex 刚刚注意到 RemovalProcessor 第 138 行有一些奇怪的东西 if Session Handler ExecutePrefetchTasks null Session Exec
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载
  • 计算斐波那契数

    我收到了这个很好的非递归函数 用于计算斐波那契序列 因此 我编写了一些 C 代码 并能够验证 1474 以内的所有数字是否正确 当尝试计算 1475 及以上时就会出现问题 我的 C 数学技能无法胜任找出不同方法的任务 那么 有人有更好的方法
  • XSD、泛型和 C# 类的困境

    我有以下简单的 XSD 文件
  • 将包含驱动器号的相对路径转换为 ​​.NET 文件函数的绝对路径

    如何转换驱动器相对路径 例如D test xml进入绝对路径 例如函数XDocument Load 会接受 D盘可能有D data作为其当前工作目录 例如 soD test xml意思是D data test xml 我已经尝试过这样的混合
  • Err_Response_Headers_Multiple_Content_Disposition

    我需要导出 2csv单击一个按钮即可打开文件 下面是我生成2的代码csv files using System Data using System Data SqlClient using System Text using System
  • SearchBoxControl 专注于在 Win8.1 上启动应用程序

    我在 Windows 8 1 应用程序中使用新的 SearchBox 控件 但每次启动应用程序时 SearchBox 都会获得焦点并显示搜索历史记录 我尝试将焦点设置在页面上的另一个控件上 但它不起作用 那么如何在不显示搜索历史记录的情况下
  • 演示如何在 C# 4.0 中使用新的“dynamic”关键字

    这是 4 0 版本中新的 C 未来 称为动态 告诉我如何在我的代码中使用它以及这个未来可以如何帮助我 相关问题 新的 dynamic C 4 0 关键字是否弃用了 var 关键字 https stackoverflow com questi
  • 直接将 XML 写入磁盘并附加元素

    我正在尝试编写一个 XML 文件 但它太大而无法存储在内存中 因此我想将其直接写入磁盘 我尝试过使用 XmlWriter 但没有功能使我能够附加到文件末尾 因此我愿意使用常规文件编写器来编写 XML 原始数据 有谁知道任何文件写入类使我能够
  • 通过 VSTO 更改 Outlook AppointmentItem 的组织者

    我正在尝试通过我开发的插件从 Outlook 中的数据库创建一组 AppointmentItems 我希望能够在另一个交换帐户的日历上创建约会项目 我有它的凭据 AppointmentItem 的 Organizer 属性是只读的 没有帮助
  • 导入 mgcv 失败,因为找不到 Rlapack.dll

    我想通过使用链接到 IronPython 中的 R 统计包R NET http rdotnet codeplex com 图书馆 它一直工作得很好 但现在我需要使用 R 的mgcv http cran r project org web p
  • 在 C# 中实例化 python 类

    我已经用 python 编写了一个类 我想通过 IronPython 将其包装到 net 程序集中 并在 C 应用程序中实例化 我已将该类迁移到 IronPython 创建了一个库程序集并引用了它 现在 我如何真正获得该类的实例 该类看起来
  • 可选参数代码在 .NET 3.5 中编译。为什么?

    这段代码在 VS 2010 的框架 3 5 项目中编译正常 我三次检查过 public LoggingClient string uri net msmq localhost logging 为什么 我在 C 4 规范中没有看到任何内容 文
  • 如何使用线程在 C# 中依次运行 3 个方法?

    我有三种方法 即方法1 方法2和方法3 方法1用于从一个站点下载图像 方法2用于从第二个站点下载图像 方法3用于比较图像 Method1 获取根据产品 id 逐一添加到列表中的图像 url 列表 即多个产品 id 的集合上有一个循环 然后根
  • Iron Python 错误:预期 或 bytearray,得到 用于串行通信

    无法理解这一点 当我使用 python shell 运行时 它可以工作 但不能 当使用 Iron python 调用时 它抛出上面的错误 C scriptEngine ExecuteFile path var testFn scriptSc
  • 跨线程操作在BackgroundWorker中无效

    我想在数据网格视图中显示有关表单加载的一些数据 我想要显示的数据有大量行 当我使用后台工作处理器时 它向我显示以下错误 My code private void backgroundWorker1 DoWork object sender
  • 在 .Net 托管的 IronPython 脚本中设置和获取变量

    我正在尝试使用 Net 控制台应用程序中托管的 IronPython 来构建验证规则引擎的原型 我已经将脚本精简到我认为的基础内容 var engine Python CreateEngine engine Execute from Sys
  • 服务器不支持 C# 中的安全连接

    我在下面的代码中收到错误 服务器不支持安全连接 SmtpClient smtp new SmtpClient MailMessage mail new MailMessage mail From new MailAddress gmail

随机推荐

  • 以 em 单位设置根元素的字体大小意味着什么?

    我没找到官方的定义em单位 但我在规范中发现了这一点 我还发现了很多其他来源 如下所列 这让我想到 设置根元素的字体大小是什么意思 即 to em units 尽管我的很多消息来源都建议使用em 我找不到任何专门指出根元素用法的内容 htm
  • 如何使用mochijson在erlang中编码数据结构?

    我正在使用mochiweb 我不知道如何使用它的json编码器来处理复杂的数据结构 mochijson 和 mochijson2 有什么区别 有什么好的例子吗 我总是收到以下错误 46 gt T6 struct hello asdf fro
  • ListViewItem 工具提示 WPF

    我需要的是 当每个列表视图项的鼠标在工具提示中显示每个列表视图的所有数据时 这是我的视图模型的一部分 using GalaSoft MvvmLight using GalaSoft MvvmLight CommandWpf private
  • Servlet 参数和 doPut

    尝试使用 HttpServlet doPut 从 PUT 请求获取参数 public void doPut HttpServletRequest request HttpServletResponse response String nam
  • 如何从 UIImage 获取文件路径?

    通常情况相反 您使用路径来显示图像 我想知道如果您已经有了图像 是否可以获得路径 如果您已经拥有图像 即已将文件添加到资源中 则可以使用它来获取文件路径 NSString string NSBundle mainBundle pathFor
  • 如何使用 freetype 渲染“Segoe UI Emoji”中的彩色字形?

    我正在尝试使用最新的 freetype 2 8 1 我从源代码编译了 x64 调试版本 没有单线程或多线程 和 OpenGL 从 Windows Segoe UI Emoji 字体渲染彩色字形 所以我用seguiemj ttf来自Windo
  • 使用Aptana Studio导入git项目但权限被拒绝(publickey)

    我尝试将现有项目从 github 存储库导入 aptana studio 但出现错误 提示权限被拒绝 公钥 fatal 远端意外挂断 我确保将 ssh 添加到我在 github 中的帐户 我还运行了 ssh vT 电子邮件受保护 cdn c
  • 将原始类型指针转换为结构指针 - 对齐和填充?

    就在我回答问题 20 分钟的时候 我想到了一个有趣的场景 但我不确定其行为 让我有一个大小为 n 的整数数组 由 intPtr 指向 int intPtr 让我也有一个这样的结构 typedef struct int val1 int va
  • Flutter Firebase 删除子集合不起作用

    在我的 Firebase 结构中 我有一个集合和其中的一些子集合 我想当我删除集合时 也删除子集合 我正在尝试执行 Firebase 文档中的操作 要删除 Cloud Firestore 中的整个集合或子集合 请检索集合或子集合中的所有文档
  • 使用 python 和 conda 扩展 openCV 的 GUI

    我在用着开放式CV 3 3 with python3 6 3我安装在conda环境和一段时间 当显示图像时 使用基本的 cv2 函数imshow window name my image 例如 一个小的 GUI 将与图像一起显示 我还能够随
  • 是否可以将默认的类dunder方法转换为类方法?

    为了给你一些背景信息 昨天我遇到了这个帖子 https stackoverflow com q 62031547 5472354 我发现这个问题非常有趣 所以我尝试找到一种解决方案 使语法尽可能接近所要求的内容 这是我想出的 class D
  • GCC:为什么常量变量不放在.rodata中

    我一直相信 GCC 会设立一个static const变量为 rodata段 或 textELF 或此类文件的优化段 但情况似乎并非如此 我目前正在使用gcc GCC 4 7 0 20120505 prerelease 在装有 GNU Li
  • 如何将 select2 与 Meteor 一起使用?

    有人可以向我解释 select2 如何与 Meteor 一起使用吗 我在用zimme select2 bootstrap 3 css https atmospherejs com zimme select2 bootstrap3 css我不
  • 使用Spring将文本文件直接注入到String中

    所以我有这个 Value classpath choice test html private Resource sampleHtml private String sampleHtmlData Before public void rea
  • 撤销个人权限后更新会话

    我试图为用户提供一个通过复选框 Facebook SDK for Android 设置 撤销发布权限的选项 下面提供了代码 一切工作正常 除了在撤销负责检查发布权限的代码后惨遭失败 据我所知 Session 无法知道用户登录后是否撤销了任何
  • div内容加载后获取div高度

    我正在尝试设置一个的高度div等于另一个 我将它们称为左 div 和右 div 正确的div内容并不总是相同 并且使用 jQuery 加载 它是一个过滤器 因此每次单击过滤器时 内容都会发生变化 父级 div 高度也会发生变化 这是我的代码
  • 在 R 中,有没有办法将 RMarkdown v2 html 文件作为电子邮件正文发送

    我开发了一份报告 该报告大量使用了 RMarkdown v2 中的功能 特别是向 html 文档添加 css 类和 id 的功能 以便使用样式表更好地控制输出 我希望通过电子邮件正文发送这些报告 我一直在尝试使用 send mail mai
  • 如何显示搜索视图最近的搜索历史记录

    我尝试使用以下方式但无法显示最近的搜索历史记录 在 ActionBar 上的 SearchView 中创建 历史记录 https stackoverflow com questions 19166537 create history to
  • Java 中的 LDAP 如何针对此 LDAP 进行搜索/身份验证

    我正在使用 LDAP 和 Java 搜索 这是我的 LDIF 导出 组织简单 version 1 dn dc example dc com objectClass organization objectClass dcObject obje
  • 从 C# 访问 Ironpython 字典

    我在 Ironpython 脚本中定义了字典 我想从我的 C 访问该字典 代码 有人可以提供示例代码来实现我的要求 抱歉 之前我没有用代码提及我的问题陈述 import clr clr AddReference System Core im