Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将python文件中的JSON数据显示为HTML_Python_Html_Web - Fatal编程技术网

将python文件中的JSON数据显示为HTML

将python文件中的JSON数据显示为HTML,python,html,web,Python,Html,Web,我目前有一个HTML文件和一个python文件。python文件使用YELP的API并返回JSON数据。如何通过HTML将这些数据显示到我的网页上?JavaScript中是否有类似于document.getElementById(“id”).innerHTML=JSONDATA的函数 请让我知道,如果你需要任何更多的细节;这是我第一次发布,也是第一次使用API/创建网站。我知道JSON数据看起来不太好,但我会把它放到字典中,稍后再对它进行排序,基本上现在我只是想知道如何将Python文件中的数据

我目前有一个HTML文件和一个python文件。python文件使用YELP的API并返回JSON数据。如何通过HTML将这些数据显示到我的网页上?JavaScript中是否有类似于
document.getElementById(“id”).innerHTML=JSONDATA的函数

请让我知道,如果你需要任何更多的细节;这是我第一次发布,也是第一次使用API/创建网站。我知道JSON数据看起来不太好,但我会把它放到字典中,稍后再对它进行排序,基本上现在我只是想知道如何将Python文件中的数据显示到HTML文件中。此外,请随时链接任何有用的教程

找到了下面的Node.js代码,建议改用Javascript,我将令牌/秘密放在哪里?然后我该如何在我的html文件中调用它。。。多谢各位

/* require the modules needed */
var oauthSignature = require('oauth-signature');  
var n = require('nonce')();  
var request = require('request');  
var qs = require('querystring');  
var _ = require('lodash');

/* Function for yelp call
 * ------------------------
 * set_parameters: object with params to search
 * callback: callback(error, response, body)
 */
var request_yelp = function(set_parameters, callback) {

  /* The type of request */
 var httpMethod = 'GET';
/* The url we are using for the request */
var url = 'http://api.yelp.com/v2/search';

/* We can setup default parameters here */
var default_parameters = {
location: 'San+Francisco',
sort: '2'
};

/* We set the require parameters here */
var required_parameters = {
oauth_consumer_key : process.env.oauth_consumer_key,
oauth_token : process.env.oauth_token,
oauth_nonce : n(),
oauth_timestamp : n().toString().substr(0,10),
oauth_signature_method : 'HMAC-SHA1',
oauth_version : '1.0'
};

/* We combine all the parameters in order of importance */ 
var parameters = _.assign(default_parameters, set_parameters,      required_parameters);

/* We set our secrets here */
var consumerSecret = process.env.consumerSecret;
var tokenSecret = process.env.tokenSecret;

/* Then we call Yelp's Oauth 1.0a server, and it returns a signature */
/* Note: This signature is only good for 300 seconds after the     oauth_timestamp */
var signature = oauthSignature.generate(httpMethod, url, parameters,      consumerSecret, tokenSecret, { encodeSignature: false});

/* We add the signature to the list of paramters */
parameters.oauth_signature = signature;

/* Then we turn the paramters object, to a query string */
var paramURL = qs.stringify(parameters);

/* Add the query string to the url */
var apiURL = url+'?'+paramURL;

/* Then we use request to send make the API Request */
request(apiURL, function(error, response, body){
return callback(error, response, body);
});

};

可以使用jQueryAjax调用API,包括在html文件中

$.ajax({
  method: "GET",
  url: "api_url",
}).done(function( response ) {
    $('#divId').append(response);
  });
在Html文件中

<div id="divId"></div>


我也有类似的情况。我必须在HTML页面中显示AWS帐户的IAM用户。我使用AWS boto3 Python客户端抓取所有IAM用户并编写JSON文件。然后从HTML文件中读取JSON文件,并将所有用户显示在一个表中

这是Python代码
IAM.PY

import boto3
import os
import subprocess
import json
iam_client = boto3.client('iam')

def list_user_cli():
    list_cmd = "aws iam list-users"
    output = subprocess.check_output(list_cmd, shell = True)
    output = str(output.decode('ascii'))
    return output

def write_json_file(filename, data):
    try:
        with open(filename, "w") as f:
            f.writelines(data)
        print(filename + " has been created.")
    except Exception as e:
        print(str(e))

if __name__ == "__main__":
    filename = "iam.json"
    data = list_user_cli()
    write_json_file(filename, data)
<!DOCTYPE html>
<html>
    <head>
        <!-- Latest compiled and minified CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <title>IAM User List</title>
        <style type="text/css">
            body{
                margin: 20px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <table class="table table-responsive table-hover table-bordered">
                <thead>
                    <tr>
                        <th>User ID</th>
                        <th>User Name</th>
                        <th>Path</th>
                        <th>Create Date</th>
                        <th>Arn</th>                    
                    </tr>                   
                </thead>
                <tbody id="iam_tbody">

                </tbody>
            </table>
        </div>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $.ajax({
                    method: "GET",
                    url: "http://localhost/iam/iam.json",
                }).done(function(response){
                    user_list = response.Users;
                    for(i = 0; i<user_list.length; i++){
                        tr = "<tr>";
                        tr += "<td>";
                        tr += user_list[i]["UserId"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["UserName"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["Path"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["CreateDate"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["Arn"];
                        tr += "</td>";
                        tr += "<tr>";
                        $("#iam_tbody").append(tr);
                    }
                });
            });
        </script>
    </body>
</html>
这是HTML文件
IAM.HTML

import boto3
import os
import subprocess
import json
iam_client = boto3.client('iam')

def list_user_cli():
    list_cmd = "aws iam list-users"
    output = subprocess.check_output(list_cmd, shell = True)
    output = str(output.decode('ascii'))
    return output

def write_json_file(filename, data):
    try:
        with open(filename, "w") as f:
            f.writelines(data)
        print(filename + " has been created.")
    except Exception as e:
        print(str(e))

if __name__ == "__main__":
    filename = "iam.json"
    data = list_user_cli()
    write_json_file(filename, data)
<!DOCTYPE html>
<html>
    <head>
        <!-- Latest compiled and minified CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <title>IAM User List</title>
        <style type="text/css">
            body{
                margin: 20px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <table class="table table-responsive table-hover table-bordered">
                <thead>
                    <tr>
                        <th>User ID</th>
                        <th>User Name</th>
                        <th>Path</th>
                        <th>Create Date</th>
                        <th>Arn</th>                    
                    </tr>                   
                </thead>
                <tbody id="iam_tbody">

                </tbody>
            </table>
        </div>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $.ajax({
                    method: "GET",
                    url: "http://localhost/iam/iam.json",
                }).done(function(response){
                    user_list = response.Users;
                    for(i = 0; i<user_list.length; i++){
                        tr = "<tr>";
                        tr += "<td>";
                        tr += user_list[i]["UserId"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["UserName"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["Path"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["CreateDate"];
                        tr += "</td>";
                        tr += "<td>";
                        tr += user_list[i]["Arn"];
                        tr += "</td>";
                        tr += "<tr>";
                        $("#iam_tbody").append(tr);
                    }
                });
            });
        </script>
    </body>
</html>

IAM用户列表
身体{
利润率:20px;
}
用户ID
用户名
路径
创建日期
阿恩
$(文档).ready(函数(){
$.ajax({
方法:“获取”,
url:“http://localhost/iam/iam.json",
}).完成(功能(响应){
用户列表=响应。用户;

对于(i=0;根据您尝试做什么/如何做,答案可以有多种方式。如果您只是尝试动态加载json,我建议使用jquery jquery.getJSON加载它(显然,您必须加载jquery并在代码中使用它。使用JavaScript或JavaScript库来访问API可能会更容易。这是我最初想要做的,但Yelp没有对API的JavaScript调用示例,而且我自己也不知道如何做,所以我正在寻找一种我熟悉的语言的工作示例w、 因此python似乎非常适合。我会使用JQuery Ajax与python相切吗?我需要一种方法来验证API,方法是使用我的令牌密钥、密码、消费者密钥、消费者密钥,然后对其进行签名,我拥有的python代码可以完成所有这些,现在我只想在HTML文件中调用该python代码,然后显示它。