将python列表传递给javascript

将python列表传递给javascript,javascript,python,list,Javascript,Python,List,我试图将python列表传递给javascript函数,但它不起作用。。。我认为Javascript函数会将其视为一个长字符串。我就是这么做的: @webiopi.macro def calcSunriseSunsetOneYear(): o=ephem.Observer() o.lat='51.21828' o.long='3.94958' s=ephem.Sun() d=datetime.date.today() t=timedelta(da

我试图将python列表传递给javascript函数,但它不起作用。。。我认为Javascript函数会将其视为一个长字符串。我就是这么做的:

@webiopi.macro
def calcSunriseSunsetOneYear():
    o=ephem.Observer()
    o.lat='51.21828'
    o.long='3.94958'
    s=ephem.Sun()
    d=datetime.date.today()

    t=timedelta(days=1)
    d=d+t
    o.date=d

    riseTime=[]
    setTime=[]
    s.compute()
    for x in range (0,365):
        o.date=o.date+1
        riseTime.append(str(ephem.localtime(o.next_rising(s))))
        setTime.append(str(ephem.localtime(o.next_setting(s))))
    return(json.dumps(riseTime))
这是python数据:

["2015-03-22 06:43:02.000006", "2015-03-23 06:40:46", "2015-03-24 06:38:31.000001", "2015-03-25 06:36:15.000002", "2015-03-26 06:33:59.000003", "2015-03-27 06:31:44.000004", "2015-03-28 06:29:28.000005", "2015-03-29 07:27:13.000006", "2015-03-30 07:24:57", "2015-03-31 07:22:42.000001", "2015-04-01 07:20:27.000002", "2015-04-02 07:18:13.000003", "2015-04-03 07:15:58.000004", "2015-04-04 07:13:44.000005", "2015-04-05 07:11:31.000006", "2015-04-06 07:09:17", "2015-04-07 07:07:04.000001", "2015-04-08 07:04:52.000002", "2015-04-09 07:02:40.000003", "2015-04-10 07:00:28.000004"]
在Javascript中,我执行以下操作:

var printChart = function macroCallBack(macro, args, chartInfo) {
        document.getElementById("chartInfo").innerHTML=chartInfo;
        var arLength=chartInfo.length;
        console.log("arLength is: ",arLength);
        for (var i=0; i<arLength; i++) {
            console.log(chartInfo[i]);
        }
    }
var printChart=函数宏回调(宏、参数、图表信息){
document.getElementById(“chartInfo”).innerHTML=chartInfo;
var arLength=chartInfo.length;
console.log(“arLength是:”,arLength);

对于(var i=0;i您应该看看JSON.stringify和JSON.parse javascript方法,它们将字符串转换为javascript对象。希望这有助于

您是对的,您在字符串中循环。这是因为JSON是字符串。这使得在不同编程语言之间传递数据非常容易,因为字符串是实现的数据类型几乎在每种编程语言中都是d。但是,由于它是字符串,您需要将字符串解码为可用的格式/对象。在javascript中,您可以使用方法
JSON.parse()

var fromthonjsonstring='[“2015-03-22 06:43:02.000006”,“2015-03-23 06:40:46”,“2015-03-24 06:38:31.000001”,“2015-03-25 06:36:15.000002”,“2015-03-26 06:33:59.000003”,“2015-03-27 06:31:44.000004”,“2015-03-28 06:29:28.000005”,“2015-03-29 07:27:13.000006”,“2015-03-03-07:30:24:57”,“2015-03-07-07:22:01”,“20:07-01”, "2015-04-02 07:18:13.000003", "2015-04-03 07:15:58.000004", "2015-04-04 07:13:44.000005", "2015-04-05 07:11:31.000006", "2015-04-06 07:09:17", "2015-04-07 07:07:04.000001", "2015-04-08 07:04:52.000002", "2015-04-09 07:02:40.000003", "2015-04-10 07:00:28.000004"]';
宏回调(来自pythonjsonstring);
函数宏回调(str){
obj=JSON.parse(str)
对于(var i=0;i
var frompythonjsonstring ='["2015-03-22 06:43:02.000006", "2015-03-23 06:40:46", "2015-03-24 06:38:31.000001", "2015-03-25 06:36:15.000002", "2015-03-26 06:33:59.000003", "2015-03-27 06:31:44.000004", "2015-03-28 06:29:28.000005", "2015-03-29 07:27:13.000006", "2015-03-30 07:24:57", "2015-03-31 07:22:42.000001", "2015-04-01 07:20:27.000002", "2015-04-02 07:18:13.000003", "2015-04-03 07:15:58.000004", "2015-04-04 07:13:44.000005", "2015-04-05 07:11:31.000006", "2015-04-06 07:09:17", "2015-04-07 07:07:04.000001", "2015-04-08 07:04:52.000002", "2015-04-09 07:02:40.000003", "2015-04-10 07:00:28.000004"]';

macroCallBack(frompythonjsonstring);

function macroCallBack (str) {
        obj = JSON.parse(str)

        for (var i=0; i<obj.length; i++) {
            console.log(obj[i]);
        }
}