我在我脑海中,试图第一次解析JSON并处理多维数组.
{
"secret": "[Hidden]",
"minutes": 20,
"link": "http:\/\/www.1.com",
"bookmark_collection": {
"free_link": {
"name": "#free_link#",
"bookmarks": [
{
"name": "1",
"link": "http:\/\/www.1.com"
},
{
"name": "2",
"link": "http:\/\/2.dk"
},
{
"name": "3",
"link": "http:\/\/www.3.in"
}
]
},
"boarding_pass": {
"name": "Boarding Pass",
"bookmarks": [
{
"name": "1",
"link": "http:\/\/www.1.com\/"
},
{
"name": "2",
"link": "http:\/\/www.2.com\/"
},
{
"name": "3",
"link": "http:\/\/www.3.hk"
}
]
},
"sublinks": {
"name": "sublinks",
"link": [
"http:\/\/www.1.com",
"http:\/\/www.2.com",
"http:\/\/www.3.com"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这分为3个部分,我的第一个维度上的静态数据(秘密,分钟,链接)我需要作为单独的字符串获取.
然后我需要一个没有固定名称的"书签集"字典,所以我需要它们的名称和每个书签的链接/名称.
然后是单独的子链接,它总是相同的,我需要单独的字典中的所有链接.
我正在阅读有关解析JSON的内容,但我找到的大部分内容都是一个放入1个字典的简单数组.有没有人有任何好的技巧来做到这一点?
我在 Linux Ubuntu 12.04 系统上。我一直在使用此代码将所有 stdout 和 stderr + INFO 级别的附加日志记录到文件中。
class LogFile(object):
def __init__(self, name=None):
self.logger = logging.getLogger(name)
def write(self, msg, level=logging.INFO):
self.logger.log(level, msg)
def flush(self):
for handler in self.logger.handlers:
handler.flush()
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d-%y %H:%M:%S',
filename='logging.log')
sys.stdout = LogFile('stdout')
sys.stderr = LogFile('stderr')
Run Code Online (Sandbox Code Playgroud)
出于某种原因,每当我得到一个条目时,它总是后跟一个空行,这是我的日志的一小部分输出:
08-09-12 09:52:54 stdout INFO CheckCon: Checking Portal access.
08-09-12 09:52:54 stdout INFO
08-09-12 09:52:54 stdout INFO CheckCon: Portal ping successful.
08-09-12 09:52:54 stdout INFO
08-09-12 09:53:08 stderr INFO Bottle server starting up (using …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的凭证计划.
客户端连接到服务器并询问凭证是否还有剩余时间,如果是,服务器会响应多长时间.
我控制了服务器和客户端,客户端也由我编码.
现在这就是我的服务器端,客户端是自我解释的.
这方面的一个重大缺陷是,如果2个客户端连接相同的凭证代码,他们都将具有访问权限,因为服务器没有检查是否存在具有该代码的活动客户端.
任何人都可以解释或导致文件如何可能吗?
#!/usr/bin/env python
from twisted.internet import reactor, protocol
class Responder(protocol.Protocol):
def dataReceived(self, data):
# check the voucher code, and return disabled if its out of time or not there. Otherwise return time left.
if data.startswith("check="):
param, vcode = data.split("=")
checkcode = SQLConnect("check", vcode, vcode)
if checkcode == "disabled":
self.transport.write("disabled")
else:
self.transport.write(str(checkcode))
# Update time left.
if data.startswith("update="):
param, vcode, vtime = data.split("=")
SQLConnect("update", vcode, vtime)
def main():
factory = protocol.ServerFactory()
factory.protocol = Responder
reactor.listenTCP(6500,factory)
reactor.run() …Run Code Online (Sandbox Code Playgroud)