C# 从 JSON 响应创建 Deedle DataFrame

2024-01-18

我在将此请求的 JSON 响应加载到 Deedle DataFrame 中时遇到了一些问题:

在 JSON 中,我感兴趣的是它的特性。更具体地说,对于每个功能都有属性 - 我本质上只想将这些属性的集合加载到 DataFrame 中。在这种特殊情况下,只有一个属性“名称”,因此我的期望是生成的 DataFrame 将具有一列“名称”,其中显示了值。

我尝试使用 json2csharp 并创建自己的类,但结果要么没有列标题/值,要么缺少值。我不太确定我做错了什么,或者我是否以正确的方式处理这个问题。我对 Deedle 文档的理解是,应该可以从对象集合创建 DataFrame:https://bluemountaincapital.github.io/Deedle/csharpframe.html#Creating-and-loading-data-frames https://bluemountaincapital.github.io/Deedle/csharpframe.html#Creating-and-loading-data-frames。当然,使用页面上列出的 Enumerable 示例可以按预期工作。

这是我的代码的相关部分:

        string url = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Earthquakes_Since1970/FeatureServer/0/query?";
        WebClient wc = new WebClient();

        wc.QueryString.Add("where", "OBJECTID<10");
        wc.QueryString.Add("returnGeometry", "false");
        wc.QueryString.Add("f", "json");
        var data = wc.UploadValues(url, "POST", wc.QueryString);

        var responseString = UnicodeEncoding.UTF8.GetString(data);
        JObject o = JObject.Parse(responseString);
        dynamic x = JsonConvert.DeserializeObject(responseString);
        var testObjList = new List<dynamic>();
        foreach (dynamic element in x.features)
            {

                testObjList.Add(new myClass { name = element.attributes.name});

                Console.WriteLine($"{element.attributes.name}");
            }


        var dfObjects = Frame.FromRecords(testObjList);
        dfObjects.Print();
        var df = Frame.FromRecords(test);
        df.Print(); // No headers or values shown

其中 myClass 就是这样的:

   public class myClass{

        public string name { get; set; }

    }

任何帮助/指示将不胜感激!


The Frame.FromRecords操作依赖于静态类型信息来确定该类具有哪些属性。在您的情况下,您将对象列表定义为List<dynamic>- 这被编译为Object因此 Deedle 没有看到任何成员。

要解决此问题,您所需要做的就是将类型定义为列表myClass对象:

var testObjList = new List<myClass>();

使用匿名类型的更紧凑的方法也可以工作:

var testObjList =       
  ((IEnumerable<dynamic>)x.features).Select(element => 
    new { name = element.attributes.name });
var dfObjects = Frame.FromRecords(testObjList);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 从 JSON 响应创建 Deedle DataFrame 的相关文章

随机推荐

  • Github:“此电子邮件不会用于提交指责”

    如何在 Github 上使用虚假电子邮件地址 下列的Github 更改后的说明 http wayback archive org web 20130124033702 https help github com articles keepi
  • 如何在 VB.NET 中变换形状

    我试图首先绘制一个形状 我已经完成了 然后将其按照用户选择进行转换 例如 旋转到某个角度或缩放 显示原始形状和新转换的形状 我尝试了以下尝试旋转 Private Sub paint box Paint sender As Object e
  • 有谁知道如何检测 Nativescript 的方向变化?

    我为屏幕创建了两个 xml 文件 一个名为 login page port xml 另一个名为 login page land xaml 有没有办法以编程方式检测应用程序内的方向变化 谢谢 凯克斯 是的 有一种方法可以检测应用程序中的方向变
  • 在谷歌脚本中使用自定义顺序对列进行排序

    我正在使用脚本对谷歌表格中的两列进行排序 目前 两列都使用排序功能 我想知道是否可以对第一列使用自定义顺序 在这种情况下 OPEN YES NO 这是一个链接电子表格样本 https docs google com spreadsheets
  • 在 ViewPager 中使用选项卡时出现错误“Java.lang.IllegalStateException Activity has been destroy”

    我有一个在选项卡模式下使用 ActionBarSherlock 的应用程序 我有 5 个选项卡 每个选项卡的内容都是使用片段处理的 不过 对于 tab2 我有一个片段 其中的 xml 文件包含一个 ViewPager 元素 该元素又包含一些
  • 每个连接的 Netty 多线程

    我是 Netty 新手 我想开发一个服务器 旨在接收来自可能少数 假设最多有 2 个 客户端的请求 但是每个客户端都会不断地向服务器发送许多请求 服务器必须处理此类请求并响应客户端 因此 在这里我假设即使我配置了多个工作线程 它也可能没有用
  • std::any_cast() 和 std::get_if(std::variant) 是否绝对有必要将指针作为参数?

    For std any and std variant我们有函数来请求对象当前包含的值 返回nullptr如果请求不能被满足 就像dynamic cast does template
  • Logstash grok 过滤器配置用于 php monolog 多行(stacktrace)日志

    2018 02 12 09 15 43 development WARNING home page 2018 02 12 09 15 43 development INFO home page 2018 02 12 10 22 50 dev
  • 如何用 C++ 处理 DWG 文件

    我正在开发一个项目 需要从 C 中的 dwg 文件导入线条数据 并且很难知道从哪里开始 我看过这个http opendesign com files guestdownloads OpenDesign Specification for d
  • pyglet 将屏幕分辨率转换为变量

    有没有任何选项如何获取值height and width使用 pyglet 将屏幕转换为变量 我可以打印它 但无法提取这些值 import pyglet platform pyglet window get platform display
  • 如何平滑matplotlib等高线图?

    I have numpy array with this shape 33 10 When I plot contour I get ugly image like this while contour 似乎没有任何关于平滑或某种插值功能的
  • 在 DataFrame 中按多列条件删除行

    我有一个 pandas 数据框 我试图根据所选列的条件删除行 如果这些选择列中的值为零 则应删除这些行 这是一个例子 import pandas as pd t pd DataFrame a 1 0 0 2 b 1 2 0 0 c 1 2
  • 反编译 Adob​​e AIR 应用程序

    是否有反编译 Adob e AIR 应用程序的工具 我想检查它们在我制作的应用程序上如何工作 打包的 AIR 文件 带有 air 扩展名的文件 是 ZIP 文件 您可以使用任何 ZIP 程序将它们分开 但是 AIR 应用程序可以用 Flas
  • 将sql结果转换为列表python

    我是 python 初学者 我想将 sql 结果转换为列表 这是我的代码 cursor connnect db query SELECT FROM tbl cursor execute query options list for i ro
  • WebGl 将 float 打包到 v4 中

    我有来自 Threejs 示例的代码示例 http twojs org examples webgl animation cloth http threejs org examples webgl animation cloth 5D其中浮
  • Matlab:如何将元胞数组转换为字符串数组?

    我有一个大小为 14676x117 的元胞数组调用myCellArray 我想提取存储在中的值myCellArray 2 14676 1 在字符串数组中 运行下面的脚本仅返回单个字符串值 而不返回字符串数组 gt gt y myCellAr
  • 我应该使用什么 SQL Server 数据类型来存储字节[]

    我想在我的 SQL Server 中存储一个字节数组 您建议使用什么数据类型或预插入操作来存储这些数据 我没想到这些byte 长度超过 1024 varbinary 1024 这就是您正在寻找的 SQL Server 中的二进制值存储有以下
  • Azure Web 应用程序容器和 docker 命令

    我将 Azure 资源 容器的 Web 应用程序 与 Linux docker 映像一起使用 我想使用 docker 命令 例如 dockerspect 但我不确定这是如何实现的 通过 Kudo 界面 这似乎不可能 我什至无法获取当前部署的
  • 禁用选项卡栏项目 - Swift

    如何禁用特定选项卡栏项目 就像第三个图标一样 self tabBarItem items 2 enabled false 一定有一种方法可以完成像单行这样简单的任务吗 上面的不行 这是答案 if let arrayOfTabBarItems
  • C# 从 JSON 响应创建 Deedle DataFrame

    我在将此请求的 JSON 响应加载到 Deedle DataFrame 中时遇到了一些问题 在 JSON 中 我感兴趣的是它的特性 更具体地说 对于每个功能都有属性 我本质上只想将这些属性的集合加载到 DataFrame 中 在这种特殊情况