在python中使用字符串插值构建Json

时间:2016-05-31 16:44:50

标签: python json

我有以下内容:

var db = window.sqlitePlugin.openDatabase({name: "test.db", location: 'default'});

var items = [];

db.transaction(function(transaction) {
transaction.executeSql('SELECT * FROM categories', [], function (tx, results) {

    for (i = 0; i < results.rows.length; i++){
        items.push('<li data-page="categories" data-value="'+results.rows.item(i).cat_id+'"><a href="#"><i class="fa fa-'+results.rows.item(i).cat_icon+'"></i><em>'+results.rows.item(i).cat_title+'</em></a></li>');
        alert('<li data-page="categories" data-value="'+results.rows.item(i).cat_id+'"><a href="#"><i class="fa fa-'+results.rows.item(i).cat_icon+'"></i><em>'+results.rows.item(i).cat_title+'</em></a></li>');
    }
}, null);
});

items.push('<li data-page="categories" data-value="aaa"><a href="#"><i class="fa fa-check"></i><em>Teste</em></a></li>');
jQuery('.menu').append(items);

我想迭代这一点,并将json有效负载的值设置为&#34; R1&#34;,&#34; R2&#34; ...在调试时输出为:

    max_id = 10
    for i in range(max_id):
        payload = "{\"text\": R%s,\"count\":\"1 \",}" %(i)
        print(payload)

我需要它

>>> payload
Out[1]: '{"text": R0,"count":"1 ",}'

我尝试过各种无法发挥作用的事情:

Out[1]: '{"text": "R0","count":"1 ",}'

我怎样才能使这个工作?

1 个答案:

答案 0 :(得分:4)

请勿使用字符串插值执行此操作。使用实际的JSON转储程序:

app.js

如果你真的想用字符串插值来做,你可以将缺少的引号添加到格式字符串中,但这不是一个好习惯。稍后您将遇到需要转义的字符以及JSON语法和Python文字语法之间的细微差别。[/ p>