【问题标题】:Print key and values from dictionary to html table (in a certain format) JSON call将字典中的键和值打印到 html 表(以某种格式) JSON 调用
【发布时间】:2017-04-05 07:24:50
【问题描述】:

下面的代码是一个 JSON 调用,它获取一个 dict 并将键和值打印到 html 表中

$(function() {
      $('a#search').bind('click', function() {
        $.getJSON('/_search', {
          a: $('input[name="a"]').val()
        }, function(data) {
          var tableData = '<table>'
          $.each(data.result, function(key, value){
            tableData += '<tr>' + key + ' ' + '</tr>';
            $.each(value, function(val){
                tableData += '<td>' + val + '</td>';
              });
          });
          tableData += '</table>';
          $('#table').html(tableData);
        });
        return false;
      });
    });

但是打印如下

Developer Publisher ReleaseDate Title
0         1         2
0         1         2
0         1         2
0         1         2

应该是这样打印的

Developer Publisher ReleaseDate Title
0         0         0           0
1         1         1           1
2         2         2           2

我不知道为什么它缺少里面的内容并且只打印 0 1 2 所以最后它应该像这样打印

Developer      Publisher ReleaseDate Title
Office Kouan   Shouei    ...         ...
Jorudan        Vap       ...         ...
Beam Software  ...       ...         ...

知道什么地方出了问题吗?

【问题讨论】:

  • 你为什么把它标记为python?
  • 我正在使用 jsonify 从 python 进行调用,我想我不必标记 python

标签: python html json dictionary


【解决方案1】:

请将代码改为:

$(function () {
    $('a#search').bind('click', function () {
        $.getJSON('/_search', {
            a: $('input[name="a"]').val()
        }, function (data) {
            var tableData = '<table>'
            $.each(data.result, function (key, value) {
                tableData += '<tr>' + key + ' ' + '</tr>';
                $.each(value, function (val) {
                    tableData += '<td>' + value[val] + '</td>';
                });
            });
            tableData += '</table>';
            $('#table').html(tableData);
        });
        return false;
    });
});

在您的代码中调用val 只是打印索引而不是您的javascript 对象中的实际值,因此使用value[val]

希望这会有所帮助。干杯.. :)

【讨论】:

  • 非常感谢!
  • 对另一部分有什么想法吗?为什么它不会水平打印?谢谢
  • 我认为您的循环顺序不正确。您能否提供来自}, function (data) {行的示例data,您用于填充表格?
  • defaultdict(, {'Developer': ['Office Koukan', 'Jorudan', 'Beam Software'], 'Publisher': ['Shouei', 'VAP' , 'Hi Tech Expressions'], 'ReleaseDate': ['March 18, 1994', 'November 18, 1994', 'October 1, 1993'], 'Title': ['Idea no Hi', 'Pachinko Hi Hisshouhou ', 'hunThe Hunt for Red October']})
  • 这是一个 defaultdict(list),它被返回到带有上述内容的 JSON 中
猜你喜欢
  • 2020-08-27
  • 1970-01-01
  • 2016-07-27
  • 2019-02-10
  • 2015-05-29
  • 2021-08-14
  • 2021-04-09
  • 2020-06-14
  • 2011-10-07
相关资源
最近更新 更多