Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用em破折号分析XML时出错_Python_Xml_Xml Parsing - Fatal编程技术网

Python 使用em破折号分析XML时出错

Python 使用em破折号分析XML时出错,python,xml,xml-parsing,Python,Xml,Xml Parsing,我正在开发一个web应用程序,它通过python脚本拉入推特列表。当我拉入包含em破折号的tweet时,我无法解析XML文件 我的剧本是: #! /usr/bin/python import cgi from peewee import * from sql_connect import * import sql_connect import sys xmlString = "" # Create XML string xmlString += "<TweetList>" tw

我正在开发一个web应用程序,它通过python脚本拉入推特列表。当我拉入包含em破折号的tweet时,我无法解析XML文件

我的剧本是:

#! /usr/bin/python
import cgi
from peewee import *
from sql_connect import *
import sql_connect
import sys

xmlString = ""

# Create XML string
xmlString += "<TweetList>"

tweets = Tweet_Info.select()
for tweet in tweets:
    xmlString += "<Tweet>"
    xmlString += "<UserName>"
    xmlString += tweet.user
    xmlString += "</UserName>"
    xmlString += "<UserImage>"
    xmlString += tweet.user_image_url
    xmlString += "</UserImage>"
    xmlString += "<Text>"
    xmlString += tweet.text
    xmlString += "</Text>"
    xmlString += "</Tweet>"

xmlString += "</TweetList>"

# Print beginning xml stuff
print "Content-Type: text/xml"
print
print '<?xml version="1.0" encoding="UTF-8"?>' 
print xmlString

我觉得解决这个问题的方法可能相当简单。我尝试过对xml使用各种不同的编码类型,但没有成功。是否有我应该使用的特定编码类型?或者有没有一种简单的方法可以过滤掉我缺少的特殊字符?

如果要生成XML,最好采用正确的方法:创建一个包含要序列化的数据的数据结构,并使用内置Python功能将其转换为XML。这种方法还有一个优点,就是您不必太担心编码错误和奇怪的输入。想想如果一条tweet包含文本,您当前的脚本会发生什么。

我会按照bdesham说的做,并创建一个本地Python结构:一个dict对象列表,然后将其序列化为JSON而不是XML。dict对象的列表已经是JSON的99%了。您可以提供正确方法的相关信息。创建一个包含要序列化的数据的数据结构,并使用内置Python功能将其转换为XML。
XML Parsing Error: no element found
Location: http://localhost/cgi-bin/GetTweets2.py
Line Number 2, Column 1: