我正在使用 ModelForm 来捕获模型的一些数据,虽然我希望将此数据保存到数据库中,但我还希望将其导出到 XML 文件以在外部系统中进行转换/使用。
请参阅下面的示例:
def warranty(request):
WarrantyFormSet = modelformset_factory(Warranty, form=WarrantyForm)
if request.method == 'POST':
formset = WarrantyFormSet(request.POST, request.FILES)
if formset.is_valid():
new = formset.save(commit=False)
out = open("file.xml", "w")
XMLSerializer = serializers.get_serializer("xml")
xml_serializer = XMLSerializer()
for n in new:
xml_serializer.serialize(Warranty.objects.all(), stream=out)
#.filter(id = n.id)
n.save()
return HttpResponse(xml_serializer.serialize(Warranty.objects.filter(id = n.id)))
else:
formset = WarrantyFormSet(queryset = Warranty.objects.none())
return render(request,'warranty.html', {'formset': formset})
Run Code Online (Sandbox Code Playgroud)
该对象在 HttpResponse 中正确序列化(即我可以看到可接受的 XML 输出),但 XML 文件本身没有输出。如果我删除 QuerySet 过滤器(即调用 .all()),那么 XML 文件将正确包含与保修模型相关的所有对象。在一种情况下的行为在另一种情况下很好,这似乎很奇怪,所以我无法进一步解决问题。
Scrapy似乎正在正确地提取数据,但是在我的JSON对象中格式化输出就好像它是一个数组:
[{"price": ["$34"], "link": ["/product/product..."], "name": ["productname"]},
{"price": ["$37"], "link": ["/product/product"]...
Run Code Online (Sandbox Code Playgroud)
我的蜘蛛类看起来像这样:
def parse(self, response):
sel = Selector(response)
items = sel.select('//div/ul[@class="product"]')
skateboards = []
for item in items:
skateboard = SkateboardItem()
skateboard['name'] = item.xpath('li[@class="desc"]//text()').extract()
skateboard['price'] = item.xpath('li[@class="price"]"]//text()[1]').extract()
skateboard['link'] = item.xpath('li[@class="image"]').extract()
skateboards.append(skateboard)
return skateboards
Run Code Online (Sandbox Code Playgroud)
我如何确保Scrapy只输出每个键的单个值,而不是它当前生成的数组?
我已经从Java转到了CPP,我正在努力围绕构造构造函数链接,我认为这是我的问题的来源.
我的头文件如下:
public:
GuidedTour();
GuidedTour(string ID, string desc, double fee, int size, string guide, string date)
: Tour(ID, desc, fee);
Run Code Online (Sandbox Code Playgroud)
我的cpp文件如下:
GuidedTour(string ID, string desc, double fee, int size, string guide, string date)
: Tour(ID, desc, fee) {
this->tourSize = size;
this ->tourGuide = guide;
this -> tourDate = date;
}
Run Code Online (Sandbox Code Playgroud)
我收到两个错误:
guided_tour.h: In constructor 'GuidedTour::GuidedTour(std::string, std::string, double, int, std::string, std::string)':
guided_tour.h:17:25: error: expected '{' at end of input
guided_tour.cpp: At global scope:
guided_tour.cpp:5:19: error: expected ')' before 'ID'
Run Code Online (Sandbox Code Playgroud)
任何见解将非常感谢!