簡體   English   中英

在Python中使用字符串插值構建Json

[英]Building Json with string interpolation in python

我有以下內容:

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

我想遍歷此,並將json有效負載的值設置為“ R1”,“ R2” ...調試后的輸出為:

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

我需要它

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

我已經嘗試了各種無效的方法:

>>> payload = "{\"text\": %s,\"count\":\"1 \"}" % ("'R'+str(i)")
>>> payload
Out[2]: '{"text": \'R\'+str(i),"count":"1 "}'
>>> payload = "{\"text\": \"%s\",\"count\":\"1 \" }" % ('R'+str(i))
>>> payload
Out[4]: '{"text": \'R\'+str(i),"count":"1 "}'
>>> payload = "{\"text\": %s,\"count\":\"1 \" }" % ('"'+'R'+str(i)+'"')
>>> payload
Out[6]: '{"text": \'R\'+str(i),"count":"1 "}'
>>> payload = "{\"text\": %s,\"count\":\"1 \" }" % ('"'+'R'+str(i)+'"')
>>> payload
Out[8]: '{"text": \'R\'+str(i),"count":"1 "}'
>>> payload = "{\"text\": %s,\"count\":\"1 \" }" % ("+'R'+str(i)+")

我該如何工作?

請勿使用字符串插值進行此操作。 使用實際的JSON轉儲程序:

import json
payload = json.dumps({"text": 'R'+str(i), "count": "1 "})

如果您真的想通過字符串插值來做到這一點,可以將缺少的引號添加到格式字符串中,但這不是一個好習慣。 稍后,您將遇到需要轉義的字符以及JSON語法和Python文字語法之間的細微差別的進一步問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM