在python中使用regex来解析JSON字段

时间:2014-05-08 06:28:09

标签: python regex json django

我正在编写一个测试函数,用于查看自动完成字段是否包含数据库中的所有结果。

自动完成字段通过创建JSON项列表从数据库返回列表。

我想知道如何编写正确的正则表达式来查找我需要的所有项目。

tests.py:

from django.test import TestCase
import unittest
import re
import requests

class TestBuilds(unittest.TestCase):

def test_autoField_mobo(self):
        '''
        Test if all motherboards from database appear in autocomplete
        '''
        mobos_db = moboListing.objects.values_list('moboList', flat = True)
        r = requests.get('localhost:8000/builds/autocomplete/ajax_lookup/moboListing?term=+') 
# When user enters a space, request to server returns JSON format of motherboards at this url
        num_mobos_db = len(mobos_db) # number of motherbaords in db
        autocomplete = re.findall(r'u'value': u'(.*?)', str(r.json()) , re.DOTALL)
        flag = False
        error = """Check that all motherboards from DB really appears"""
        for i in range(0, num_mobos_db):
        if mobos_db[i] in autocomplete:
            flag = True
        else:
            flag = False
        self.assertTrue(flag, error)

我的问题是如何为JSON字符串编写正确的正则表达式,如下所示:

>>> str(r.json())

"[{u'pk': u'1', u'value': u' ASUS Motherboard '}, {u'pk': u'2', u'value': u' MSI Motherboard '}]"

我希望从u'value': u' '收集所有主板名称,以便我可以检查它们是否与数据库匹配,或者是否有办法计算JSON项目的数量,我可以比较一下与我的数据库中的主板数量。

0 个答案:

没有答案