写入文件为Json格式?

时间:2009-12-25 09:35:15

标签: python django

我有一个将输出格式化为json的方法。 我的keyword_filter将以这种格式传递:

<QueryDict: {u'customer_type': [u'ABC'], u'tag': [u'2']}>
<QueryDict: {u'customer_type': [u'TDO'], u'tag': [u'3']}>
<QueryDict: {u'customer_type': [u'FRI'], u'tag': [u'2,3']}>

实际上这是我从request.GET(keyword_filter = request.GET)

获得的

这是我的方法:(我正在尝试)

 def save_fiter_to_JSON(self, dest, keyword_filter):
    fwrite  = open(dest, 'a')
    #keyword_filter = <QueryDict: {u'customer_type': [u'FRI'], u'tag': [u'2,3']}>
    string_input1 =string.replace(str(keyword_filter), '<QueryDict:', '["name:"')
    string_input2 = string.replace(string_input1, '>', '')
    fwrite.write(string_input2+",\n")
    fwrite.close()

这里的每个人都可以帮助我吗? 我想要的json格式。

[
 {"name": filter_name, "customer_type": "ABC", "tag": [2,3]},
]

或者你的其他好格式。

import simplejson as json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'

** filter_name将从方法save_fiter_to_JSON传递。

圣诞快乐,新年快乐。 ...

2 个答案:

答案 0 :(得分:3)

一些提示:

  • 您可以使用QueryDict表达式将django的dict(keyword_filter)转换为Python字典,
  • 您可以使用dict(keyword_filter, name=filter_name)表达式向字典中添加其他记录。

然后使用json模块转储JSON并将其写入文件。

答案 1 :(得分:2)

您的问题很难理解。我不确定你需要什么。这是我解决问题的最佳尝试。

def save_fiter_to_JSON(self, dest, filter_name, keyword_filter):
    # start with an empty list
    lst = []

    # I don't know where you will get your qd (QueryDict instance)
    # filter something using keyword_filter?  Replace this with actual code
    for qd in ??FILTER_SOMETHING??(keyword_filter):
        # make a mutable copy of the QueryDict
        d = qd.copy()
        # update the copy by adding "name"
        d["name"] = filter_name
        # append dict instance to end of list
        lst.append(d)

    # get a string with JSON encoding the list
    s = json.dumps(lst)

    f = open(dest, 'a')
    f.write(s + "\n")
    f.close()