我有一个Json格式的字符串,只有没有键或值被引号括起来.例如,我有这个:
String json = "{name: Bob, state: Colorado, Friends: [{ name: Dan, age: 23 }, {name: Zane, age: 24 }]}"
Run Code Online (Sandbox Code Playgroud)
我希望这成为一个看起来像这样的地图:
Map<String, Object> friend1Map = new HashMap<>();
friend1Map.put("name", "Dan");
friend1Map.put("age", 23);
Map<String, Object> friend2Map = new Hashmap<>();
friend2Map.put("name", "Zane");
friend2Map.put("age", 24);
Map<String, Object> newMap = new HashMap<>();
newMap.put("name", "Bob");
newMap.put("state", "Colorado");
newMap.put("Friends", Arrays.asList(friend1Map, friend2Map));
Run Code Online (Sandbox Code Playgroud)
我尝试了以下两种方法:
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
Run Code Online (Sandbox Code Playgroud)
这将引发错误,说:
Unexpected character ('n'): was expecting double-quote to start field name
Run Code Online (Sandbox Code Playgroud)
然后我尝试更改映射器的配置:
mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
mapper.readValue(json, …Run Code Online (Sandbox Code Playgroud) 我正在使用模块openpyxl for Python,我正在尝试创建一个超链接,将我带到同一个Excel工作簿中的不同选项卡.执行类似于以下操作的操作会创建超链接; 但是,当我点击它时,它告诉我它无法打开文件.
from openpyxl import Workbook
wb = Workbook()
first_sheet = wb.create_sheet(title='first')
second_sheet = wb.create_sheet(title='second')
first_sheet['A1'] = "hello"
second_sheet['B2'] = "goodbye"
link_from = first_sheet['A1']
link_to = second_sheet['B2'].value
link_from.hyperlink = link_to
wb.save("C:/somepath/workbook.xlsx")
Run Code Online (Sandbox Code Playgroud)
我假设问题在于'link_to'的价值; 但是,我不知道需要改变什么或者我必须编写什么样的路径.
我正在使用Python 2.7.6和Excel 2013.
我首先要说的是,我几乎没有使用 Java VisualVM 的经验。但是,它包含一些开发人员希望看到的信息。当我为我的应用程序打开它时,它包含一个 CPU、内存、类和线程的图表。我想知道是否有办法从命令行获取该信息。因此,如果应用程序在调用时使用了 250 MB 的内存,是否可以编写一个返回 250 MB 的命令?同样与它使用的线程数有关?
我使用的版本是 1.7.0_51。
谢谢。
我在Windows 7上使用Python 2.7和Selenium 2-44-0.我正在寻找一种比使用send_keys更快的输入文本的方法.Send_keys将一次打印1个字母(更好地模仿实际用户).我想要一种方法将所有这些打印出来,就像内容被粘贴一样.
例如,Sikuli具有以下功能:
paste("this will all populate the field at the same time")
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法在Python中编写一个具有相同结果的方法.所以,而不是:
el.send_keys("this will do 1 letter at a time")
Run Code Online (Sandbox Code Playgroud)
有类似的东西
el.paste_keys("this will do the entire line at once")
Run Code Online (Sandbox Code Playgroud)
由于上面的命令需要向selenium功能添加代码,因此使用python方法更有意义.也许有些东西:
def paste_keys(self, xpath, text):
os.environ['CLIPBOARD'] = text
el = self.driver.find_element_by_xpath(xpath)
el.send_keys(Keys.CONTROL, 'v')
Run Code Online (Sandbox Code Playgroud)
但是,使用该环境变量实际上并不是一个"副本",我不知道如何在不下载第三方软件的情况下从代码级别设置剪贴板.
我正在设置sys.excepthook,以便我可以记录发生的每个异常.不要写入日志,而是使用以下示例:
def excepthook(self, type_, value, traceback):
print "\n"
print type_
print value
print traceback
print "\n"
sys.excepthook = self.excepthook
Run Code Online (Sandbox Code Playgroud)
现在假设我创建了一个类型错误,如下所示:
print 3 + str(2)
Run Code Online (Sandbox Code Playgroud)
没有被抓住,这进入了异常情况并正确打印出3个变量:
<type 'exceptions.TypeError'>
unsupported operand type(s) for +
<traceback object at 0x02BAE800>
Run Code Online (Sandbox Code Playgroud)
我想做的是,它还打印出发送到excepthook的完整异常(因此,在这种情况下,是一个TypeException).换句话说,我希望它也显示以下信息).
Traceback (most recent call last):
File "testcidnelite.py", line 13, in <module>
print 3 + str(2)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Run Code Online (Sandbox Code Playgroud)
如果我添加以下行:
raise
Run Code Online (Sandbox Code Playgroud)
它会正确显示异常; 但是,它也会在术语"加速"时显示错误:
Error in sys.excepthook:
Traceback (most recent call last):
File "C:\psi-test-automation\Selenium\TestMethods2.py", line 145, in …Run Code Online (Sandbox Code Playgroud) 我编写了一个使用 Jersey 的服务。在返回 Response 对象的最后一个类中,我有:
Stream<Revision> revisionss = dataSourceHandler.getRevisions( .... );
StreamingOutput stream = os -> objectHistoryWorker.revisionsTransfer(revisions, os);
return Response.ok(stream).build();
Run Code Online (Sandbox Code Playgroud)
这将获取一个 StreamRevision对象,将流转换为StreamingOutput,然后在Response.
我正在尝试编写一个集成测试来测试这个,我想看看Response. 换句话说,我想知道诸如
Revision存在多少对象Revision对象是否包含正确的信息我遇到的问题是它是一个OutboundJaxrsResponse,并且readEntity()不支持该方法。
它具有无论是否通过都会返回的方法(即状态代码 200),但我似乎无法找到一种实际读取响应内容的方法。
有没有办法获得这些信息?
(预期的响应内容将为 Json 格式)
我想创建一个可以调用其他功能文件的功能文件。这可能吗?例如,我想要一个高级功能文件,上面写着这样的内容(仅采用正确的格式):
call feature1
call feature2
call feature3
Run Code Online (Sandbox Code Playgroud)
并且每个调用都转到一个功能文件,其中包含:
Scenario Outline:
Given this
Then that
And more
Run Code Online (Sandbox Code Playgroud)
因此,在此示例中,您将具有1个高级功能部件文件和3个较低级功能部件文件。每个子功能可能都是一个方案大纲。
谢谢。
所以我没有意识到PyCharm有自己的git功能.截至目前,我已经有了一个本地存储库和一个远程存储库,只有它们是用git bash创建的.我目前正在处理的项目已经位于该本地存储库中.我想集成PyCharm让我使用这些存储库.
有很多关于如何创建存储库的信息,但我似乎无法跟随任何关于使用已存在的存储库的事情.
所以我想要的主要是能够将我当前的项目放在我当前存在的本地存储库中 - 从那里,我希望能够推送/添加到当前存在的远程存储库.
有谁知道如何做到这一点?
谢谢.
我创建了一个需要列表才能正常工作的方法.但是,您可以发送一个列表或一个简单的字符串.我想将该字符串转换为包含整个字符串作为元素的列表.例如,如果我有:
"I am a string"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
["I am a string"]
Run Code Online (Sandbox Code Playgroud)
我可以这样做:
"I am a string".split("!@#$%^&*")
Run Code Online (Sandbox Code Playgroud)
因为我永远不会有符号组合,所以它总会将它转换为列表而不删除任何字符.但是,这似乎不是一种很好的方法.还有另外一种方法吗?
所以我有一个包含6个变量的列表.我想将它分成2个列表,一个包含给定变量左侧的元素,另一个包含该给定变量右侧的所有内容.例如,如果我有:
var1 = 25
var2 = 30
var3 = 35
var4 = 40
var5 = 45
var6 = 50
arr = [var1,var2,var3,var4,var5,var6]
Run Code Online (Sandbox Code Playgroud)
我想在var 3分开,给出:
arr1 = [var1,var2]
arr2 = [var4,var5,var6]
Run Code Online (Sandbox Code Playgroud)
这有点像在字符串上使用split(var3).我可以使用以下代码成功完成此操作:
arrleft = arr[:arr.index(var3)]
arrreverse = sorted(arr, reverse=True)
arrcut = y[:y.index(var3)]
arrright = sorted(arrcut, reverse=False)
print arrleft
print arrright
Run Code Online (Sandbox Code Playgroud)
然而,这似乎是一种糟糕的方法.有谁知道更简单的方法?
谢谢.
我试图找出是否有一种更短的方式来编写这个if语句(写了一个非常基本的,不切实际的if语句,因此很容易看出这一点.
x = 3
if x == 1 or x == 2 or x == 3 or x==4:
print x
else:
print "nope"
Run Code Online (Sandbox Code Playgroud)
我想写下以下内容:
if x == or(1,2,3,4):
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?或者我是否必须写出每个选项?
谢谢,肖恩
python ×6
java ×2
arrays ×1
bash ×1
clipboard ×1
cmd ×1
cucumber ×1
excel ×1
exception ×1
git ×1
github ×1
heap-memory ×1
hyperlink ×1
if-statement ×1
jackson ×1
jax-rs ×1
jersey ×1
json ×1
jvisualvm ×1
list ×1
mapper ×1
openpyxl ×1
pycharm ×1
response ×1
selenium ×1
sikuli ×1
sorting ×1
split ×1
string ×1